最后更新于6年前
其实就是26进制表示
"ZY" -- 701 = 26*26 + 1*25
"ZZ" -- 702 = 26*26 + 1*26
"AAA" -- 703 = 26^2*1 + 26*1 + 1*1
每次n%26得到最低位(1--A,...,25--Y,特别的是0--Z),然后n = n//26,进入下一轮,直到n==0,注意整除时(n%26==0)特殊,n = n//26 - 1。
class Solution: def convertToTitle(self, n: int) -> str: res = "" while n != 0: m = n % 26 #取模 if m == 0: #对模结果为0特殊处理 n = n // 26 - 1 res = 'Z' + res else: n = n // 26 res = chr(m + 64) + res #用asc码 return res