168. Excel表列名称
原始题目链接:https://leetcode.cn/problems/excel-sheet-column-title/
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
示例 1:
输入:columnNumber = 1
输出:“A”
示例 2:
输入:columnNumber = 28
输出:“AB”
示例 3:
输入:columnNumber = 701
输出:“ZY”
示例 4:
输入:columnNumber = 2147483647
输出:“FXSHRXW”
解题思路:
通过计算余数和商来从低位到高位算出对应的字母,这里26进制的计算是0到25这个26个数,但A是从1开始的,所以在计算余数和商的时候,为了能够和26进制保持一样,所以先减掉1,再计算。
代码实现:
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
ans = []
while columnNumber > 0:
# 因为是26进制:0~25,但A是从1开始的,所以字母相对于正常的26进制的数字
# 都多加了一个1,所以在使用26进制计算的时候,先减掉1个1
columnNumber -= 1
# 计算余数,即最右边的字母
cur = columnNumber % 26
# 转换字母
cur_ans = chr(cur + ord('A'))
ans.insert(0, cur_ans)
# 求商,计算下一个字母
columnNumber //= 26
return ''.join(ans)
参考文献:
https://leetcode.cn/problems/excel-sheet-column-title/solution/excelbiao-lie-ming-cheng-by-leetcode-sol-hgj4/