LeetCode刷题笔记第168题:Excel表列名称
题目:
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
想法:
类似十进制转二进制,这里是1-26,要使用26进制则需要将1-26改为0-25。具体做法将输入的整数除以26得到的余数为个位数上的数值,再次除以26得到十位数上的数值依次类推,最终获得每个位数上的数值,再将这些数值对应的字符连接即为最终结果字符串
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
result = []
while columnNumber>0:
columnNumber -= 1 # 此处为了将数值改为26进制数
result.append(chr(columnNumber % 26 + ord("A"))) # 获得当前位置上的字符并添加入字符串列表
columnNumber //= 26 # 获得除数进行下一轮计算
return "".join(result[::-1]) # 字符串列表中存储的是倒叙的字符
上述方法的
时间复杂度:O(log26 columnNumber)
空间复杂度:O(1)