1. 问题描述:
给定一个Excel表格中的列名称,返回其相应的列序号。
例:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: “A”
输出: 1
示例 2:
输入: “ZY”
输出: 701
2. 问题分析:
- 根据问题描述,我们很容易得到 A—Z 分别对应 1—26。并且不同位置的位权是不同的,例如:BA:B 所在位置的位权为 26 ^ 1,此时,B表示 2 * 26 ^ 1;BCA:B 所在位置的位权为 26 ^ 2,此时,B表示 2 * 26 ^ 2,依此类推(相当于26进制)。
- 那么,对于一个给定的Excel列名称,我们就可以求出它所对应的列序号。对于每一个字符 m,它的自身值为 m - 64;sum 的初始值为 0;将给定字符串进行一次遍历,同时执行语句:sum = sum * 26 + 每个字符的自身值(每遍历一个新字符,前面遍历过的字符的位权都将扩大26倍),完成遍历,得到最终列序号。
3. 代码实现: