class Solution(object):
def titleToNumber(self, s):
"""
:type s: str
:rtype: int
"""
sum = 0
n = len(s)
for i in range(n)[::-1]:
sum += pow(26,n-i-1)*(ord(s[i])-ord('A')+1)
return sum
range(n)[::-1]的用法
ord()以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值
class Solution(object):
def titleToNumber(self, s):
return reduce(lambda x,y:26*x+y,map(lambda x:ord(x)-ord('A')+1,s))
其实这道题可以作为给定顺序数字,求所代表的数字的n进制的值,如123,10*(10*1+2)+3