给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
Z -> 26
AA -> 27
AB -> 28
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
解
直接一次遍历字符串,每次用相应位置的字符与A做差之后加一。每多一位时,将res的结果乘以26,使用这种方式解决26进制和10进制的转换问题。面试要是遇到这种题需要秒解。java代码如下:
public static int titleToNumber(String s) {
int res = 0;
for(int i = 0;i<s.length();i++) {
res = res * 26 + s.charAt(i)-'A'+1;
}
return res;
}