Leetcode P0171"Excel Sheet Column Number" 题解

2020/09/30 Leetcode

博文中会简要介绍Leetcode P0171题目分析及解题思路。

“Excel Sheet Column Number”是一道比较简单的题目。这道题的核心思路是将字符串到数的转化看成进制的转化,即原先的纯字符串表示的值按26进制转化为十进制结果。不过需要注意的是,这里的进制的起始值不是0,而是1(即A)。

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 
    ...

以下是Java的题解代码实现。

class Solution {
    public int titleToNumber(String s) {
        if (s.length() == 0)
            return 0;
        
        int num = 0, radix = 26;
        for (int idx=0; idx<s.length(); ++idx) {
            num = num*radix+(int) (s.charAt(idx)-'A'+1);
        }
        
        return num;
    }
}

以下是C++的题解代码实现。

class Solution {
public:
    int titleToNumber(string s) {
        if (s.length() == 0)
            return 0;
        
        int num = 0, radix = 26;
        for (char ch: s) {
            num = num*radix+(ch-'A'+1);
        }
        
        return num;
    }
};

Search

    Table of Contents