LeetCode171 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

方法一

可以看作把一個26進制的數轉化爲十進制,根據公式即可。

public int titleToNumber(String s) {
        if(s.length()==0) return 0;
        int sum = 0;
        int len = s.length();
        for(int i=0;i<len;i++){
            char c = s.charAt(i);
            int num = c-'A'+1;
            sum = (int) (sum + num*(Math.pow(26,len-i-1)));
        }
        return sum;
    }

方法二

上面需要調用數學函數,需要時間開銷。但可以不必,如“ABCD”即可視爲((1*26+2)*26+3)*26+4.

public int titleToNumber1(String s){
        if(s.length()==0) return 0;
        int sum =0;
        int len = s.length();
        for(int i=0;i<len;i++){
            char c = s.charAt(i);
            int num = c-'A'+1;
            sum = sum*26+num;
        }
        return sum;
    }
發佈了40 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章