python:Excel表序列号

本文介绍了如何使用Python定义一个名为titlesToNumber的类方法,实现将字符串中的字母转换为26进制数字,通过逐个字符计算并累加得到最终结果。该方法适用于如'ZY'这类字母组合,时间复杂度为O(n),空间复杂度为O(1)。
摘要由CSDN通过智能技术生成
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值