【LeetCode】Excel Sheet Column Title

Posted on 2015-05-06 22:30  Maples7  阅读(242)  评论(0编辑  收藏  举报

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB





Solution:
经过分析不难发现实际上就是数对于 26 进制的转换用字母表示出来。
代码如下:
 1 class Solution:
 2     # @param {integer} n
 3     # @return {string}
 4     def convertToTitle(self, n):
 5         ans = ""
 6         while (n>0):
 7             temp = (n + 25) % 26 + 1
 8             ans = chr(temp + ord("A") - 1) + ans
 9             n = (n-1)/26
10         return ans

不过,还是需要注意的是,这个进制转换有效的是 1..26 而不是一般的 0..25。

所以在求当前位上的数字时,采取把 n 加上25后对26取余再加 1,这样就把所有的映射从 0..25 换到了 1..26。

同时,用 (n-1)/26,这样即便当前 n 是 26 的倍数,也不至于会 “进位” 。