问题描述
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
补充说明:
这个题目的意思是在Excel应用程序中,行的标题往往是A、B、C ... AA、AB、...这样子的字母形式,现在要求把他们转换成1、 2、 3 ... 26、 27 ...这样的数字形式。
方案分析
- 单字母的解决方案,这个问题很常规,就是如何将字母转为对应的数字。
- 当字母是多位,如
AA
这样的,末尾数字还表示原本对应数据,前面一个数字代表相当于进位,只不过这里是26位进制。
例如:AA = 26 × 1 + 1 = 27
。
再如:BAC = 2 × 26 × 26 + 1 × 26 + 3
又如:BBAA = 2 × 26 × 26 × 26 + 2 × 26 × 26 + 1 × 26 + 1
python实现
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