题目链接:Excel Sheet Column Number

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 

这道题的要求是将Excel表格中列标题转化成相对应的整数。

Excel Sheet Column Title的逆向操作,值得注意的还是记得加1。

时间复杂度:O(n)

空间复杂度:O(n)

1
2
3
4
5
6
7
8
9
10
11
class Solution
{
public:
    int titleToNumber(string s)
    {
        int res = 0;
        for(int i = 0; i < s.size(); ++ i)
            res = res * 26 + (s[i] - 'A' + 1);
        return res;
    }
};

当然,递归的话,可以看到代码更简短,只剩下1行了。。。

1
2
3
4
5
6
7
8
class Solution
{
public:
    int titleToNumber(string s)
    {
        return s.size() == 0 ? 0 : titleToNumber(s.substr(0, s.size() - 1)) * 26 + (s[s.size() - 1] - 'A' + 1);
    }
};