Excel表列序号

2020-12-03  本文已影响0人  422ccfa02512

题目

难度级别:简单

给定一个Excel表格中的列名称,返回其相应的列序号。

例如,

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
...

示例 1:

输入: "A"
输出: 1

示例 2:

输入: "AB"
输出: 28

示例 3:

输入: "ZY"
输出: 701

解题思路

法一

通过进制转换可得

const titleToNumber = function(s) {
    let str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    let res = 0

    for(let i = 0; i < s.length; i++)
        for(let j = 0; j < str.length; j++)
            if(s[i] === str[j])
                res +=  (j + 1) * 26**(s.length - 1 - i)
                
    return res;
};

charCodeAt

将字符转化为ASCII码,A-Z是连续的,且A为65,所以转换以后减一个65 + 1,值就在1-26里了。

const titleToNumber = function(s) {
    let res = 0

    for(let i = 0; i < s.length; i++)
        res +=  (s[i].charCodeAt()-65 +1) * 26**(s.length-1-i)

    return res;
};

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-number

上一篇 下一篇

猜你喜欢

热点阅读