LeetCode 171. Excel Sheet Column Number
題目
Related to question Excel Sheet Column Title
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-Z總共26個字母,因此這就是一個26進位的系統
- 將字串分別取出字元A-Z,根據ANSI CODE,A的code為65,A = 65 - 64 = 1
- 以AB為例, AB = (A)26^1 + (B)26^0 = 126+ 2*1 = 28
- 以AZ為例, AZ = (A)26^1 + (Z)26^0 = 126+ 26*1 = 52
解題
/**
* @param {string} s
* @return {number}
*/
var titleToNumber = function(s) {
var sum = 0;
var exp = 0;
for(var i = s.length -1 ; i >= 0 ; i--){
// 根據ansi將字元轉成數字,這邊是從字串後面,也就是低位數開始取
var v = s.charCodeAt(i) - 64;
// 毎多一個字元代表26的n次方
v = v*Math.pow(26,exp++);
sum += v;
}
return sum;
};