想法:
给你一个字符串 columnTitle,表示 Excel 表格中的列名称。返回 该列名称对应的列序号。此题单个字符的对应值与ASCII码差64,并且字符没Z进一位,因此为26进制。从给定字符串的尾部遍历至头部,相当于数字的个位数到最高位数,获得每个位置上的字符得到其数值并乘以进制求和即为所求。
时间复杂度O(n)
空间复杂度O(1)
class Solution: def titleToNumber(self, columnTitle: str) -> int: sum = 0 for i in range(len(columnTitle)): sum += (ord(columnTitle[-(i+1)]) - 64) * (26 ** i) # 倒叙获得字符串中的字符并计算当前字符的值求和 return sum