將Excel表頭轉換成列數

題目:Excel Sheet Column Number

描述:

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

翻譯:

將Excel表頭對應的列轉換成列數,比如A對應1(第一列),AB對應28(第28列)

思路:

類似與16進制轉換成10進制,只不過這裏的是26進制

代碼實現:

public int titleToNumber(String s) {
        char[] chars = s.toCharArray();
        int offset = 64;
        int rst = 0;
        int mi = 1;
        for (int i = chars.length - 1; i >= 0; i--) {
            int a = chars[i] - offset;
            rst += a * mi;
            mi = mi * 26;
        }
        return rst;
    }

利用進制轉換的方法,能夠快速的轉換,排名:超過51%,還有可以優化的就是將mi * 26轉化成位移算法,因爲是確定的。能夠再提高一點效率。

發佈了54 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章