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?