难度级别:简单
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
输入: "A" 输出: 1
输入: "AB" 输出: 28
输入: "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;
};
将字符转化为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
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。