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
【實現代碼】
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;
}
}
【思考】:
進制這裏的思想值得借鑑!