【JS】 Excel表列序号 #数学 Easy

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

例如,
A -> 1
B -> 2

Z -> 26
AA -> 27

输入: “A” , 输出: 1
输入: “AB” , 输出: 28
输入: “ZY” , 输出: 701
输入: “XYZ” , 输出: 16900



解法一:

这道题在一个月前刚刷 LeetCode 时就有遇到,不过当时没有想到解决方法,就放弃在了一边,

这次又看到突然发现这道题目很简单,它就是一道 26 的乘方的数学题。

建立一个 map ,字符串只有一位时用 map 的数字乘以 1 ,
两位时 map的数字乘以 26 ,
三位时 map的数字乘以26^2,
四位时map的数字乘以 26^3


var titleToNumber = function(s) {
    var maps = {"A":1, "B":2, "C":3, "D":4, "E":5, "F":6, "G":7, "H":8, "I":9,
     "J":10, "K":11, "L":12, "M":13, "N":14, "O":15, "P":16, "Q":17, "R":18,
      "S":19, "T":20, "U":21, "V":22, "W":23, "X":24, "Y":25, "Z":26} 

    var sum = 0;
    for(var i=s.length-1,y=1 ;i>-1;i--,y*=26) {
        sum+=maps[s[i]]*y
    }
    
    return sum;
}

执行用时:84 ms
已经战胜 98.75 % 的 javascript 提交记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值