给定一个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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
类似于26进制转十进制算法
/**
* @param {string} s
* @return {number}
*/
var titleToNumber = function(s) {
var cNum = s.length;
var number = 0;
for(i=0;i<cNum;i++){
var a = s[i].charCodeAt()-64;
var b = cNum-1-i;
number += a*Math.pow(26,b);
}
return number;
};
首先需要判读字符串的长度
然后使用JS中的charCodeAt()函数,将特定的字符转换为其Unicode编码值,其中A的Unicode编码和ASCII编码相同,都是65。
然后读取第一个字符,number += a*Math.pow(26,b);
依次循环计算即可。