其实就是二十六进制转换成十进制而已。
class Solution {
public:
int titleToNumber(string s) {
int sum = 0;
int k = 1;
for (int i = s.length()-1; i>=0; i--)
{
sum = sum + (s[i]-'A'+1) * k;
k = k * 26;
}
return sum;
}
};
另一种思路,也是把字符串当做一个二十六进制数,每向右移一位相当于*26。
class Solution {
public:
int titleToNumber(string s) {
int result = 0;
for (int i = 0; i < s.size(); result = result * 26 + (s.at(i) - 'A' + 1), i++);
return result;
}
};