我一开始是用倒着来的,就是直接用 最后面乘与对应的26**index然后将结果相加得到答案。
class Solution {
public int titleToNumber(String columnTitle) {
int ans = 0;
int num;
int n = columnTitle.length();
int index = 0;
for (int i = n - 1; i >= 0; i--) {
num = columnTitle.charAt(i) - 'A' + 1;
ans += num * Math.pow(26, index);
index++;
}
return ans;
}
}
其实我们是可以用其他来解决,不一定要倒着来,正着来其实也是可以的。
比如我们把一个数字转换成10进制来说。
比如现在有个字符串是“235”
我们把这个字符串转换为10进制的话。
我们就是
public int revert(String s) {
int n = s.length();
int ans = 0;
for (int i = 0; i < n; i++) {
int num = s.charAt(i) - '0';
ans = ans * 10 + num;
}
return ans;
}
同理,我们这里是26进制,转换其实也是差不多。
public int titleToNumber(String columnTitle) {
int ans = 0;
int n = columnTitle.length();
int num;
for (int i = 0; i < n; i++) {
num = columnTitle.charAt(i) - 'A' + 1;
ans = ans * 26 + num;
}
return ans;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)