题目
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
解法
思路: 字符串遍历,进制转换。
class Solution {
public int titleToNumber(String s) {
if(s == null || s == ""){
return 0;
}
char[] array = s.toCharArray();
// 次方数。
int multiple = 0;
double ans = 0;
for(int i = array.length - 1 ; i >= 0 ; i--){
char c = array[i];
ans = ans + ((c-'A')%26+1)*Math.pow(26,multiple);
multiple++;
}
return (int)ans;
}
}
总结
本篇文章讲解了算法题目的思路和解法,代码和笔记由于纯手打,难免会有纰漏,如果发现错误的地方,请第一时间告诉我,这将是我进步的一个很重要的环节。以后会定期更新算法题目以及各种开发知识点,如果您觉得写得不错,不妨点个关注,谢谢。