Excel表列名称

2020-12-01  本文已影响0人  422ccfa02512

题目

难度级别:简单

给定一个正整数,返回它在 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

上一篇下一篇

猜你喜欢

热点阅读