给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
示例 1:
输入: "ZY" 输出: 701
思路:
由题目描述知:此问题相当于求解26进制
A=》1*26^0
AA=>1*26^1 + 1*26^0;
ZY=>26*26^1+25*26^0;
......
因为给定的字母是有序的,所以不需要写swich case语句,用当前的字符减去A+1即为该字母对应的数字大小
实现代码如下:
public static int titleTonum(String str){
char[] ch = str.toCharArray();
int n = ch.length;
int sum = 0;
for(int i = 0; i < ch.length; i++){
sum = sum + (ch[i] - 'A' +1)*(int)Math.pow(26,n - 1 - i);
}
return sum;
}