Excel Sheet Column Number Excel表列序號

麥田裡的哈士奇發表於2018-11-09

給定一個Excel表格中的列名稱,返回其相應的列序號。

例如,

    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 
    ...

示例 1:

輸入: "A"
輸出: 1

示例 2:

輸入: "AB"
輸出: 28

示例 3:

輸入: "ZY"
輸出: 701

思路:這道題可以參考Excel Sheet Column Title Excel表列名稱的解題思路,每個字元的位置都有對應的權重且權重為26,比如字串“CAB”,那麼字元B的權重為1,字元A的權重為26,字元C的權重為26*26。我們的目標就是把每一個字串的字元對應的權重乘以自己的值轉換成數字即可。

參考程式碼:

class Solution {
public:
    int titleToNumber(string s) {
        int index = s.size() - 1,weight=1;
        int res = 0;
        while (index >= 0) {
            res += (s[index] - 'A' + 1)*weight;
            weight *= 26;
            index--;
        }
        return res;
    }
};

 

 

相關文章