一、题目
LeetCode By Python二、解题
给出一个数字,返回对应的字母编码(A-1...Z-26)
这个出发点是当做26进制来做,但是做出来却发现有点不同,例如十进制,是09,但是这里却是126,要对0进行特殊处理。
三、尝试与结果
class Solution(object):
def convertToTitle(self, n):
tar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = ""
while n > 0:
m = (n-1) % 26
result += tar[m]
if m == 0:
n = n + 1
n = (n-1) / 26
return result[::-1]
结果:AC
有两个点需要说明:
1)为什么要n-1,因为是tar的下标签是从0开始的,例如传进来一个1,要减1来匹配字符串的下标。
2)为什么要n+1,因为没有0!例如传入的是27,当n-1了之后余数为0了,说明应该+1跳过一个0这个数字了。
网友评论