Leetcode——171Excel列表序號

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

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

示例1:

輸入: "A"
輸出: 1

輸入: "AB"
輸出: 28

輸入: "ZY"
輸出: 701

【思路】

  • 標籤:字符串遍歷,進制轉換
  • 初始化結果ans =0,遍歷時將每個字母與A做減法,因爲A表示1,所以減法後需要每個數加1,計算其代表的數值num = 字母 - ‘A’ + 1
  • 因爲有26個字母,所以相當於26進制,每26個數則向前進一位 所以每遍歷一位則ans = ans * 26 + num

參考鏈接:https://leetcode-cn.com/problems/two-sum/solution/hua-jie-suan-fa-171-excelbiao-lie-xu-hao-by-guanpe/

【實現代碼】

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

【思考】:
進制這裏的思想值得借鑑!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章