题目描述
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
解题思路
循环暴力求解,没啥简单办法,只要确定了字母和整数之间的转换关系就能解题了。
相当于26进制与10进制的转换。时间复杂度O(N) 。
代码
class Solution {
public int titleToNumber(String s) {
int len = s.length();
int sum = 0;
for (int i = 0; i < len; i++){
sum += (s.charAt(i) - 'A' + 1) * Math.pow(26, len - i - 1);
System.out.println(Math.pow(26, len - i - 1));
System.out.println(sum);
}
return sum;
}
}