題目
難度:★☆☆☆☆
類型:數(shù)學
給定一個Excel表格中的列名稱帆调,返回其相應的列序號栗竖。
例如究飞,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例
示例 1:
輸入: "A"
輸出: 1
示例 2:
輸入: "AB"
輸出: 28
示例 3:
輸入: "ZY"
輸出: 701
解答
該題與【題目168. Excel表列名稱】互為對偶問題,類似十進制與二十六進制的相互轉(zhuǎn)換研叫,不過這里計算更加簡便哮针,同樣使用ascii碼進行數(shù)字和字母的換算关面,字母“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 # 計算到當前位的結(jié)果
return res
如有疑問或建議十厢,歡迎評論區(qū)留言~