您的位置:首页 > 编程语言 > Go语言

Algorithms—171.Excel Sheet Column Number

2015-07-01 17:22 344 查看
思路:曾经和朋友讨论过这个问题,其实本质上是26进制,把Z当做A0就可以了。

耗时:344ms。中游水准。

public class Solution {
public int titleToNumber(String s) {
int[] a=new int[s.length()];
boolean flag=false;
for (int i = s.length()-1; i>=0; i--) {
String k=s.substring(i,i+1);
int ik= (int)(k.toCharArray()[0])-64;
if (flag) {
ik++;
}
if (ik!=26) {
a[s.length()-1-i]=ik;
flag=false;
}else {
a[s.length()-1-i]=0;
flag=true;
}
}
int p=1;
int sum=0;
for (int i = 0; i < a.length; i++) {
if (i!=0) {
p*=26;
}
sum+=a[i]*p;
}
if (flag) {
return sum+=p*26;
}
return sum;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: