Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28
这题题目的意思就是:将26进制字母转化为10进制数字
class Solution { public: int titleToNumber(string s) { int n=0; for(int i=0;i<s.size();i++) { n=n*26+(s[i]-'A'+1); return n; } } };
编译的时候开始总是出现Line 4: stray ‘357’ in program错误,后来才知道不小心在程序中打入了全角字符。
其他解法:
A C++ solution Runtime: 0ms
class Solution { public: int titleToNumber(string s) { int res = 0; for(int i=0; i<s.length(); i++){ int exp = s[i] - 'A' + 1; res = exp * pow(26, s.length() - i -1) + res; } return res; } };