171. Excel表列序号
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: columnTitle = "A"
输出: 1
示例 2:
输入: columnTitle = "AB"
输出: 28
示例 3:
输入: columnTitle = "ZY"
输出: 701
示例 4:
输入: columnTitle = "FXSHRXW"
输出: 2147483647
提示:
- 1 <= columnTitle.length <= 7
- columnTitle 仅由大写英文组成
- columnTitle 在范围 [“A”, “FXSHRXW”] 内
方法一:模拟
思路
题目要求就是把「二十六进制」转为「十进制」,A = 1,B = 2 ,... Z = 26
。
字符 ‘A’ 等于 65,字符 ‘@’ 等于 64,相减就能得到 1,同理字符 ‘B’ - ‘@’ = 2,‘Z’ - ‘@’ = 26。
参考代码
public int titleToNumber(String columnTitle) {
int n = columnTitle.length();
int ret = 0, temp = 1;
for (int i = n - 1; i >= 0; i--) {
ret += temp * (columnTitle.charAt(i) - '@');
temp *= 26;
}
return ret;
}
执行结果