题目:
Excel中使用大写字母表示列号,例如A表示1,B表示2.......AA表示27.......根据输入的字母,判断列号。
分析:
使用字母来引入“二十六进制”,相当于对“二十六进制”进行计算为十进制。
同时要知道大写字母A表示的数字65,65-90为26个大写英文字母,97-122为26个小写英文字母。
实现:
<span style="font-size:14px;">public int lineNum(String s) {
int length = s.length();
if (s == null || length == 0)
return 0;
int num = s.charAt(length - 1) - 64;
int bit = 1;
for (int i = 0; i < length - 1; i++) {
char c = s.charAt(i);
bit *= (i + 1) * 26;
num += (c - 65 + 1) * bit;
}
return num;
}</span>