題目: 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;
}
}複製代碼