問題描述
Related to question Excel Sheet Column Title
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
補(bǔ)充說明:
這個(gè)題目的意思是在Excel應(yīng)用程序中,行的標(biāo)題往往是A螃成、B逻卖、C ... AA、AB阔逼、...這樣子的字母形式,現(xiàn)在要求把他們轉(zhuǎn)換成1眯分、 2荤胁、 3 ... 26宪萄、 27 ...這樣的數(shù)字形式艺谆。
方案分析
- 單字母的解決方案,這個(gè)問題很常規(guī)拜英,就是如何將字母轉(zhuǎn)為對(duì)應(yīng)的數(shù)字静汤。
- 當(dāng)字母是多位,如
AA
這樣的居凶,末尾數(shù)字還表示原本對(duì)應(yīng)數(shù)據(jù)虫给,前面一個(gè)數(shù)字代表相當(dāng)于進(jìn)位,只不過這里是26位進(jìn)制侠碧。
例如:AA = 26 × 1 +∧ü馈1 = 27
舆床。
再如:BAC = 2 × 26 × 26 + 1 × 26 +∑灏觥3
又如:BBAA = 2 × 26 × 26 × 26 + 2 × 26 × 26 + 1 × 26 + 1
python實(shí)現(xiàn)
class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
sum = 0
for index, item in enumerate(s[::-1]):
sum += ((ord(item) - ord('A') + 1) * pow(26, index))
return sum