171. Excel Sheet Column Number
进制转换:A(N进制) ==> B(M进制)
从大位数到小位数: 每访问一个位数,累计结果都需要 *N,再加上该位数n本身在M进制的值 例如 ABC:0*26+1=1 ----> 1*26+2=28 ----> 28*26+3=731
class Solution:
def titleToNumber(self, s: str) -> int:
result = 0
for i in range(len(s)):
result *= 26
result += (ord(s[i])-ord('A')+1)
return result
从小位数到大位数: 每一位数n都代表 (n在M进制的值) * (M的n-1次方),把每位数代表的值相加 例如 ABC:1*(26^2) + 2*(26^1) + 3*(26^0) = 731
class Solution:
def titleToNumber(self, s: str) -> int:
result = 0
for i in range(len(s)):
result += (ord(s[i])-ord('A')+1) * (26**(len(s)-1-i))
return result
Last updated
Was this helpful?