您的位置:首页 > 其它

leetcode-Excel Sheet Column Title

2015-10-11 00:27 399 查看
题目:

  把数字转化为excel形式的字符表示。示例:1->A 2->B 3->C ... 26->Z 27->AA...

解题思路:

  乍一看有点像进制转换题目,不过细想想发现它没有‘0’。所以这时候需要我们仔细观察:很明显,这是26进制的表示方法,但是没有0的表示方法。所以我们来归纳一下,十进制10在这里面怎么表示,是Z,20呢?B*,30是C*,以此类推:

10 - Z

20 - B*

30 - C*

...

260 - YZ


  也就是说当n>0且n%26 == 0时,我们输出Z,并且向上一位借1(这里有点像除法的借位),换而言之,当n%26==0时,我们输出Z之后,在后续的计算中n应该等于 (n-1)/26。所以代码如下

class Solution(object):
def convertToTitle(self, n):
"""
:type n: int
:rtype: str
"""
ret = ''
alpha = 'ZABCDEFGHIJKLMNOPQRSTUVWXY'
while n > 0:
ret = alpha[n%26] + ret
n = (n-1) / 26
return ret
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: