一、原题目
Given a column title as appear in an Excel sheet, return its corresponding column number.
二、题目大意
给定Excel表中出现的列标题,返回对应的列号。
三、具体代码
思路一:
class Solution(object):
def titleToNumber(self, s):
res = 0
for i in range(len(s)):
res = res * 26 + ord(s[i]) - ord('A') + 1 为什么是res*26
return res
作者原文链接:
https://leetcode.com/problems/excel-sheet-column-number/discuss/209454/Simplest-python-solution
思路二:
class Solution:
def titleToNumber(self, s: str) -> int:
if not s:
return 0
return 26 * self.titleToNumber(s[:-1]) + ord(s[-1]) - 64 #从后面开始算,递归思想
作者原文链接:
思路三:
def titleToNumber(s):
s = s[::-1]
sum = 0
for exp, char in enumerate(s):
sum += (ord(char) - 65 + 1) * (26 ** exp)
return sum
上面思路简写:
def titleToNumber(s):
return sum((ord(char) - 64) * (26 ** exp) for exp, char in enumerate(s[::-1]))
作者原文链接:
https://leetcode.com/problems/excel-sheet-column-number/discuss/52289/Explanation-in-Python
四、知识汇聚:
1.ord() 函数:是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)
作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
>>>ord('a')
97
2.s[:-1] :代表[0:-1)前面0可以省略 s[::-1] 复制列表
t='adfghjg'
print(t[:-1],t[-1])
adfghj g
五、来源
题目连接:https://leetcode.com/problems/excel-sheet-column-number/
座右铭:站在别人的思想上,看见自己的不足,传播错误的经验,愿君不重蹈覆辙。
由于受限于本人经验,难免不足,如有建议,欢迎留言交流。
说明:如果喜欢,请点赞,您的鼓励是本人前进的最好动力。这个是为了汇聚思路,提供参考。有些本人理解不深,所以不写思路分析,博客风格形式与其他不同。
---------------------
作者:路漫漫,远修兮
来源:CSDN
原文:https://blog.csdn.net/qq_41827968/article/details/88756403
版权声明:本文为博主原创文章,转载请附上博文链接!