171. Excel Sheet Column Number

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进制
以下这个例子是错误的,因为比如AB,按字符串的顺序排在第一位的是A而不是B

class Solution {
public:
int titleToNumber(string s) {
int ret = 0;
for(int i = 0; i < s.size(); i ++)
{
int m=pow(26,i);
ret +=(s[i]-'A'+1)*m;
}
return ret;
}
};

正确的是:

class Solution {
public:
int titleToNumber(string s) {
int ret = 0;
int n=s.size();
for(int i = 0; i < n; i ++)
{
int m=pow(26,n-1-i);
ret +=(s[i]-'A'+1)*m;
}
return ret;
}
};

 

这样也是对的

  1. class Solution {  
  2. public:  
  3.     int titleToNumber(string s) {  
  4.         int sum = 0;  
  5.         int tmp = 0;  
  6.         for (int i = 0; i < s.length(); ++i) {  
  7.             tmp = s[i] - 'A' + 1;  
  8.             sum = 26 * sum + tmp;  
  9.         }  
  10.         return sum;  
  11.     }  
  12. }; 
posted on 2016-01-05 10:16  baiyuhong  阅读(148)  评论(0编辑  收藏  举报