这个跟上一篇正好是反过来的,这个是反26进制,给一个数来推导出字符串来。需要注意处理n % 26 == 0的情况。代码如下:
class Solution(object):
def convertToTitle(self, n):
"""
:type n: int
:rtype: str
"""
dic = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K', 12: 'L', 13: 'M', 14: 'N', 15: 'O', 16: 'P', 17: 'Q', 18: 'R', 19: 'S', 20: 'T', 21: 'U', 22: 'V', 23: 'W', 24: 'X', 25: 'Y', 26: 'Z'}
s = ''
if n == 0:
return ''
while n > 26:
print '1111'
m = n % 26
if m == 0:
s = 'Z' + s
n = n / 26 -1
else:
s = dic[m] + s
n = n / 26
return dic[n] + s