自己的思路:将输入变成char数组,对数组按位生成数字。
直接上代码:
public class Solution {
private int[] map;
public int titleToNumber(String s) {
map = new int[26];
for(int i=0;i<26;i++){
map[i]=i+1;
}
char[] scharry = s.toCharArray();
int sum=0;
for(int i=0;i<scharry.length;i++){
sum+=map[scharry[i]-'A']*Math.pow(26,(scharry.length-i-1));
}
return sum;
}
}
效率并不是很好,换一种解法,不用什么pow,利用迭加的方式:
public class Solution {
public int titleToNumber(String s) {
int result = 0;
for (int i = 0; i < s.length(); i++){
result *= 26;
result += ((s.charAt(i) - 'A') + 1);
}
return result;
}
}
将加与乘分开