难度级别:简单
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
输入: 1 输出: "A"
输入: 28 输出: "AB"
输入: 701 输出: "ZY"
这道题类似于10进制转化2进制,通过辗转相除求出各个位置上的数字。但这里有个坑,2进制时它是满2进1,是0 - 2。A - Z是26个数,这里A为1,即1 - 26(实际上是27进制,但是又没有0位)。我们需要把他各个位置上的数看成0 - 25,即26进制。这样的话,在每次取模的时候,我们需要把当前的数进行减一处理。
示例:
以78为例
78 = 3 * 26^1 + 0*26^0 这里的3对应的是D,0对应的是A,即: DA
const convertToTitle = function(n) {
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
let res = ''
while(n > 0) {
res = str[--n % 26] + res
n = parseInt(n / 26)
}
return res
};
题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/excel-sheet-column-title
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。