给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
思路:这道题可以参考Excel Sheet Column Title Excel表列名称的解题思路,每个字符的位置都有对应的权重且权重为26,比如字符串“CAB”,那么字符B的权重为1,字符A的权重为26,字符C的权重为26*26。我们的目标就是把每一个字符串的字符对应的权重乘以自己的值转换成数字即可。
参考代码:
class Solution {
public:
int titleToNumber(string s) {
int index = s.size() - 1,weight=1;
int res = 0;
while (index >= 0) {
res += (s[index] - 'A' + 1)*weight;
weight *= 26;
index--;
}
return res;
}
};