LeetCode第171題---Excel表列序號

題目描述

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

例如,

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

示例 1:

輸入: “A”
輸出: 1
示例 2:

輸入: “AB”
輸出: 28
示例 3:

輸入: “ZY”
輸出: 701

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/excel-sheet-column-number
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

代碼以及解題過程

class Solution {
    public int titleToNumber(String s) {

        //通過翻譯每一個字符代表的數字來實現求解問題
        //相當於一個26進制的問題,只不過不是從0開始
        //'A'的ASCII碼爲65

        /**
         * 1.字符串爲空的情況
         * 3.就是不爲空的情況,輸入一個‘A’
         * 4.輸入一個“AB”
         * 5.輸入一個“ABCCCC”
         **/
         int res=0;
        for(int i=0;i<s.length();i++){

            //用當前位置的字符減去'A'代表的ACSII碼就可以獲得字符所代表的數字
            res=res+((int)(s.charAt(i)-'A'+1)) * ( (int)Math.pow(26,s.length()-i-1) );
        }

        return res;

    }
}

總結

1、Math.pow()的使用。
2、26進制的計算。

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