您的位置:首页 > 其它

将Excel表头转换成列数

2016-11-04 23:40 405 查看

题目:Excel Sheet Column Number

描述:

Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

A -> 1

B -> 2

C -> 3



Z -> 26

AA -> 27

AB -> 28

翻译:

将Excel表头对应的列转换成列数,比如A对应1(第一列),AB对应28(第28列)

思路:

类似与16进制转换成10进制,只不过这里的是26进制

代码实现:

public int titleToNumber(String s) {
char[] chars = s.toCharArray();
int offset = 64;
int rst = 0;
int mi = 1;
for (int i = chars.length - 1; i >= 0; i--) {
int a = chars[i] - offset;
rst += a * mi;
mi = mi * 26;
}
return rst;
}


利用进制转换的方法,能够快速的转换,排名:超过51%,还有可以优化的就是将mi * 26转化成位移算法,因为是确定的。能够再提高一点效率。

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