给定一个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 提交记录