Related to question Excel Sheet Column Title
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
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
解法:相当于26进制转10进制。
class Solution { public: int titleToNumber(string s) { int n = s.size(), res = 0; for (int i = 0; i < n; ++i) res += (toupper(s[i]) - 'A' + 1) * (int)pow(26, n - i - 1); return res; } };
不使用pow函数的改进:
class Solution { public: int titleToNumber(string s) { int n = s.size(), res = 0, i = 0; for (; i < n - 1; ++i) { //注意不能循环到n-1,防止溢出 res += (toupper(s[i]) - 'A' + 1); res *= 26; } return res + (toupper(s[i]) - 'A' + 1); } };