题目
难度级别:简单
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 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
网友评论