题目:
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701
思路:这道题和之前的题思路正好相反,是将有字母表示的26进制转化为10进制。首先我自己在写的时候取出字母的时候顺序弄错了,应该从后往前取出字母,还有今天提交的时候同样代码有时候结果是对的,有时候不对。。。
代码:
class Solution {
public int titleToNumber(String s) {
int N=s.length();
int re=0;
int tem=0;
int b=1;
char a;
for(int i=N-1;i>=0;i--)
{
a=s.charAt(i);
tem=a-'A'+1;
re=tem*b+re;
b=b*26;
//b=26^i;
}
return re;
}
}