1. 题目描述
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
2. 示例
示例 1:
输入: columnTitle = “A”
输出: 1
示例 2:
输入: columnTitle = “AB”
输出: 28
示例 3:
输入: columnTitle = “ZY”
输出: 701
提示:
1 <= columnTitle.length <= 7
columnTitle 仅由大写英文组成
columnTitle 在范围 ["A", "FXSHRXW"] 内
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
3. 思路
从题目可以看出来是26进制转10进制,从获取每一位的次序(每个字母的是第几),然后再乘以对应位的倍数,遍历一遍字符串就得出来结果
4. 遇上的问题
- A的ASCII码的多少,A是65
5. 具体实现代码
func titleToNumber(columnTitle string) int {
num := uint(1)
var target uint
for i:=len(columnTitle)-1;i>=0;i--{
u := columnTitle[i] - 'A' + 1
target = target + uint(u)*num
num = num* 26
}
return int(target)
}
6. 官方题解
func titleToNumber(columnTitle string) (number int) {
for i, multiple := len(columnTitle)-1, 1; i >= 0; i-- {
k := columnTitle[i] - 'A' + 1
number += int(k) * multiple
multiple *= 26
}
return
}
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/excel-sheet-column-number/solution/excelbiao-lie-xu-hao-by-leetcode-solutio-r29l/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
7 题目来源
链接: link
思路差不多。 ------swrici