给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
思路:
一道简单的26进制转十进制的水题。
依次处理每个位就好。
正常写法:
class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
l = len(s) - 1
res = 0
for index, item in enumerate(s):
res += (ord(item) - ord("A") + 1) * (26 ** (l - index))
return res
极端写法:
return sum((ord(item) - ord("A") + 1) * (26 ** (len(s) - index - 1)) for index, item in enumerate(s))
下面的写于2019年7月18日19:10:48
class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
res = 0
for char in s:
res *= 26
res += 1 + ord(char) - ord("A")
return res