题目描述
给定一个Excel表格中显示的列标题,要求返回其相应的列号。
样例
输入A,返回1
输入B,返回2
...
输入Z,返回26
输入AA,返回27
输入AB,返回28
算法1
$O(n)$
逐个读取字符进行转换,本质上是26进制转10进制。
例如,BC=2×26^1+3×26^0=55。
这道题与168. Excel Sheet Column Title互逆。
C++ 代码
class Solution {
public:
int titleToNumber(string s) {
int num = 0;
for (int i = 0; i < s.length(); ++i) {
num = 26 * num + (s[i] - 'A' + 1); //注意'A'不是0而是1
}
return num;
}
};