題目描述
給定一個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進制的計算。