171.titleToNumber Excel表列序号 Esay

1.题目描述

给定一个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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.解题思路

类似于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);
依次循环计算即可。

你可能感兴趣的:(LeetCode刷题)