给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
致谢:
特别感谢 @ts 添加此问题并创建所有测试用例。
解题思路:就是进制问题,字母有二十六位,就是二十六位进制。十进制下=》二十六进制
class Solution {
public:
int titleToNumber(string s) {
if(s.size()==1)return s[0]-'A'+1;
int l=s.size();
int res=0;
for(int i=0;i<s.size();i++){
int k=s[i]-'A'+1;
res+=k*pow(26,l-i-1);
}
return res;
}
};