这道题涉及到字符串和进制转换,首先我们先创建一个A-Z到1-26的map映射,方便我们后续遍历字符串转换,然后对字符串从后往前遍历,依次加上对应权重,注意越往前的权重越大,要记得对应乘上26的对应方数
class Solution(object):
def titleToNumber(self, columnTitle):
"""
:type columnTitle: str
:rtype: int
"""
ans = 0
base = 1
index = len(columnTitle) - 1
# 使用字典推导式创建映射字典
mapping = {chr(i): i - 64 for i in range(65, 91)}
while index >= 0:
ans += mapping[columnTitle[index]] * base
base *= 26
index -= 1
return ans