45 - excel表序列号
题目
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
解答
就是把”excel表列名称“反过来搜索咯
作者:guanpengchn 链接:https://leetcode-cn.com/problems/two-sum/solution/hua-jie-suan-fa-171-excelbiao-lie-xu-hao-by-guanpe/
以ZY为例,ZY=701,其中Z的值为26,Y的值为25,则结果为$26 * 26 + 25=701$。乘26因为是26进制。
所以$AB=28=1*26+2$。
func titleToNumber(s string) int {
var ans int
for _, elem := range s {
cur := int(elem - 'A' + 1)
ans = ans*26 + cur
runtime.Gosched()
}
return ans
}
Runtime: 4 ms, faster than 48.58% of Go online submissions for Excel Sheet Column Number.
Memory Usage: 2.2 MB, less than 50.00% of Go online submissions forExcel Sheet Column Number.
循环一个string
,每一个elem
却是其rune
,也就是一个数字。
这就很奇怪不是么,不应该是其对应的字母吗?
不过反正也是要用rune,也就省了再转换了。。
var titleToNumber = function (s) {
let ans = 0
for (const item of s) {
const numb = item.charCodeAt()
const cur = numb - 'A'.charCodeAt() + 1
ans = ans * 26 + cur
}
return ans
};
Runtime: 68 ms, faster than 83.23% of JavaScript online submissions for Excel Sheet Column Number.
Memory Usage: 35 MB, less than 73.33% of JavaScript online submissions for Excel Sheet Column Number.
Last updated
Was this helpful?