LeetCode 171 _ Excel表列序号

1. 题目描述

 

2. 代码

 1 class Solution:
 2     def titleToNumber(self, s: 'str') -> 'int':
 3         s = s.upper()
 4         n = len(s)
 5         sums = 0
 6         k = 0
 7         for i in range(n-1,-1,-1):
 8             asci = ord(s[i]) - 64
 9             sums += 26 ** k * asci
10             k += 1
11         return sums

思路: 26个字母, 相当于26进制运算, 跟十进制类似.

         从右往左运算, 当前字母在Excel表中值为 ord(c)-64,(因为 ord('A')=65).

3. 整理

3.1 range

1 for i in range(2, -1, -1):
2     print(i)
1 2
2 1
3 0
1 for i in range(0, -1, -1):
2     print(i)


0

3.2 ord() : 以一个字符串(Unicode 字符)作为参数, 返回对应的 ASCII 数值.

1 print(ord('A'))
2 
3 65

chr() : 用一个整数作参数, 返回当前整数对应的 ASCII 字符.

1 print(chr(66))
2 
3 B

3.3 x**y , 返回x的y次幂.

 

posted @ 2020-10-19 18:45  vv_869  阅读(84)  评论(0编辑  收藏  举报