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
还是接着上一篇,自己的“笨”方法:
1 class Solution { 2 public: 3 int titleToNumber(string s) { 4 map<char,int> m; 5 string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 6 for (int i = 1; i <= 26; i++) 7 { 8 cout << str[i - 1]; 9 m.insert(pair<char, int>(str[i - 1], i)); 10 } 11 int len = s.size(); 12 int len1 = len; 13 int sum1 = 0; 14 for (int i = 0; i<len; i--) 15 { 16 int sum = 1; 17 for (int i = 1; i < len1; i++) 18 { 19 sum *= 26; 20 } 21 sum1 += m[s[i]] * sum; 22 len1--; 23 } 24 return sum1; 25 } 26 };
别人的方法:
1 class Solution { 2 public: 3 int titleToNumber(string s) { 4 int result = 0; 5 int carrier = 1; 6 for (int i = 0; i < s.size(); i++) { 7 result += (s[s.size() - i - 1] - 64) * carrier; 8 carrier *= 26; 9 } 10 return result; 11 } 12 };