171. Excel Sheet Column Number Python
边刷边记录,因为没有基础,所以很慢,总觉得自己可以写出来才证明自己懂了这题,有写的不对的地方,欢迎指正。
03/14/2018
链接:https://leetcode.com/problems/excel-sheet-column-number/description/
参考:https://leetcode.com/problems/excel-sheet-column-number/discuss/52289/Explanation-in-Python
翻译
将Excel表格中的列标题,转化为相对应的列号。如下:
思路:
-
将26进制的数转为10进制的数
-
个位上的数A 代表26^0 x 1=1, B 代表26^0 +2 =2 以此类推, Z 代表26^0 x 26 = 26
-
十位上的数A 代表26^1 x 1=26, B代表 26^1 x 2=52,以此类推,Z代表26^1 x 26 = 676
-
百位上的数A 代表26^2 x 1 = 676, B代表 26^2 x 2 = 1352, 以此类推,Z代表 26^2 x 26 = 17576
-
以AB为例,AB = (A)26^1 x 1 + (B)26^0 x 2 = 26 + 2 = 28
-
理解了以上就可以写代码了
enumerate: https://docs.python.org/3/library/functions.html?highlight=enumerate#enumerate
ord: https://docs.python.org/3/library/functions.html?highlight=enumerate#ord
-
enumerate()是python的内置函数
-
enumerate在字典上是枚举、列举的意思
-
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
-
enumerate多用于在for循环中得到计数
ord()说明
-
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数。
-
它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值
-
如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
关于字符串和编码不理解的可以查看廖雪峰老师的官方网站,写的非常清楚:链接: