LeetCode每日一題: Excel表列序號(No.171)

題目: Excel表列序號


給定一個Excel表格中的列名稱,返回其相應的列序號。
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
...
複製代碼

示例:


輸入: "A"
輸出: 1

輸入: "AB"
輸出: 28

輸入: "ZY"
輸出: 701
複製代碼

思考:


這道題能夠理解爲將二十六進制數轉爲十進制數。
A~Z表明1~26,27進一位即AA,因此按照不一樣進制數轉換的方法來計算。
將字符串轉爲字符數組,從後向前循環遍歷,最後一位表明二十六的零次方,倒數第二位表明二十六的一次方,以此類推。
最後將全部計算結果相加即爲最終結果。
複製代碼

實現:


class Solution {
    public int titleToNumber(String s) {
        char[] chars = s.toCharArray();
        int result = 0;
        for (int count = chars.length - 1; count >= 0; count--) {
            result += Math.pow(26, chars.length - count - 1) * (chars[count] - 'A' + 1);
        }
        return result;
    }
}複製代碼
相關文章
相關標籤/搜索