Excel表列名称

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"

示例 2:
输入: 28
输出: "AB"

示例 3:
输入: 701
输出: "ZY"

def convertToTitle(n):
    """
    :type n: int
    :rtype: str
    """
    ls = []
    i = 1
    if n % 26 == 0:
        ls.append('Z')
        n -= 26
    else:
        ls.append(chr(n % 26 + 96).upper())
        n -= n % 26
    while n > 0:
        t = (n / 26**i) % 26
        if t == 0:
            ls.append('Z')
            n -= 26 * (26**i)
        else:
            ls.append(chr(t + 96).upper())
            n -= t * (26**i)
        i += 1
    ls.reverse()
    return ''.join([str(x) for x in ls])

思路:拿到题目先分析题意,这里我直接给出结果。实际上是这样一个过程:
1 -> A
2 -> B
3 -> C
...
26 -> Z

A:

B:

.
.
.

Z:

AA:

AB:

BA:

ABC:

看出规律出来了吧
所以我们只要从末尾开始依次提取数字,然后转换成字母就可以了,里面有很多细节要注意,我搞了半天才搞出来。心态都要爆炸了。

你可能感兴趣的:(Excel表列名称)