class solution(object):
def titleToNumber(self, s: str) -> int:
# 理解为26进制的转化
# 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘A’ + 1. 因为有 26 个字母,所以相当于 26 进制,每 26 个数则向前进一位. 所以每遍历一位则ans = ans * 26 + num. 以 ZY 为例,Z 的值为 26,Y 的值为 25,则结果为 26 * 26 + 25=701.
ans = 0
for i in range(len(s)): #遍历每个字符
#ord()函数返回对应的十进制整数。
num = ord(s[i]) - ord('A') + 1 #将字符转化为数字 例如Z则为26
ans = ans * 26 + num
return ans
a = 'ZY'
c = solution()
b = c.titleToNumber(a)
print(b)
#时间复杂度O(n),空间复杂度:O(1)
python:Excel表序列号
最新推荐文章于 2023-03-08 16:27:58 发布
本文介绍了如何使用Python定义一个名为titlesToNumber的类方法,实现将字符串中的字母转换为26进制数字,通过逐个字符计算并累加得到最终结果。该方法适用于如'ZY'这类字母组合,时间复杂度为O(n),空间复杂度为O(1)。
摘要由CSDN通过智能技术生成