171. Excel Sheet Column Number
Description
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
Solution
Solution 1
/**
* @param {string} s
* @return {number}
*/
var titleToNumber = function(s) {
"use strict";
const repeat = (times, num) => times > 0 ? repeat(times-1, num)*num : 1;
return s.split("").reverse()
.map((ch, idx) => (ch.charCodeAt()-"A".charCodeAt() + 1)*repeat(idx, 26))
.reduce((x, sum) => sum+x, 0);
};
Solution 2
/**
* @param {string} s
* @return {number}
*/
var titleToNumber = function(s) {
"use strict";
let sum = 0;
for (let i = s.length-1; i >= 0; i--) {
let times26 = 1;
let j = (s.length-1)-i;
while (j) {
times26 *= 26;
j--;
}
sum += (s[i].charCodeAt()-"A".charCodeAt() + 1)*times26;
}
return sum;
};