题目
难度:★☆☆☆☆
类型:数学
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
解答
该题与【题目168. Excel表列名称】互为对偶问题,类似十进制与二十六进制的相互转换,不过这里计算更加简便,同样使用ascii码进行数字和字母的换算,字母“A”和“Z”对应的ascii码分别为65和90。
class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
res = 0
while s:
cur, s = s[0], s[1:] # 获取当前位并更新字符串
res = res * 26 + ord(cur) - 64 # 计算到当前位的结果
return res
如有疑问或建议,欢迎评论区留言~