题目
给定一个Excel表格中的列名称,返回其相应的列序号。
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
思路
也就是一个26进制,A表示1,B表示2,以此类推…这样,有点快速幂那味,但是又比快速幂简单,就是计算26的n次方的时候。每次去计算出当前位置在26进制中对应的数值,然后乘上对应的26的n次幂即可!
代码
class Solution {
public int titleToNumber(String columnTitle) {
int length=columnTitle.length();
int count=1; // 26的n次幂
int ans=0;
for (int i=length-1;i>=0;--i)
{
ans+=((columnTitle.charAt(i)-64)*count);
count*=26;
}
return ans;
}
}
结果
简单题,没什么难度,锻炼思维!