171. Excel 表列序号
原始题目链接:https://leetcode.cn/problems/excel-sheet-column-number/
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如:
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
示例 1:
输入: columnTitle = “A”
输出: 1
示例 2:
输入: columnTitle = “AB”
输出: 28
示例 3:
输入: columnTitle = “ZY”
输出: 701
提示:
1 <= columnTitle.length <= 7
columnTitle 仅由大写英文组成
columnTitle 在范围 [“A”, “FXSHRXW”] 内
解题思路:
这道题就是将26进制的字母转换成对应的十进制的数字,先将字母转换对应的26进制的整数,再将这些整数按照从低位到高位乘以对应的底数,转换成10进制数,这里要注意columnTitle最右边的字母是最低位,需要倒叙遍历。
代码实现:
class Solution:
def titleToNumber(self, columnTitle: str) -> int:
ans = 0
# 26进制的底数
mul = 1
# 倒叙遍历columnTitle,因为最小编号在最右边
for i in range(len(columnTitle) - 1, -1, -1):
# 为了转换成十进制的数,先计算ASCII的值
cur = ord(columnTitle[i]) - ord('A') + 1
ans += cur * mul
mul *= 26
return ans
参考文献:
https://leetcode.cn/problems/excel-sheet-column-number/solution/excelbiao-lie-xu-hao-by-leetcode-solutio-r29l/
该博客介绍了如何将Excel表格的列标题(如'A'、'AB')转换为对应的列序号。通过理解26进制到10进制的转换原理,遍历并计算每个字母的值,然后累加得到最终的列序号。提供的解题思路和代码实现详细解释了这一过程。
1001

被折叠的 条评论
为什么被折叠?



