每日算法----171. Excel 表列序号----2022/12/29
1. 题目描述
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
2. 示例
示例 1:
输入: columnTitle = “A” 输出: 1 示例 2:
输入: columnTitle = “AB” 输出: 28 示例 3:
输入: columnTitle = “ZY” 输出: 701
提示: 1 <= columnTitle.length <= 7 columnTitle 仅由大写英文组成 columnTitle 在范围 ["A", "FXSHRXW"] 内
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 }
7 题目来源
链接:
思路差不多。 ------swrici
下一篇:
最大连续子序列和问题