来自Leetcode第171题Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
1 2 3 4 5 6 7 8
| A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
|
示例 1:
进制转换
26进制转换思路
1 2 3 4 5 6 7 8 9 10 11
| public int titleToNumber(String s) { if(s == null || s.equals("")) return 0; int sum = 0, len = s.length(),temp; for(int i = 0 ; i < len ; i++){ temp = s.charAt(i) - 'A' + 1; temp *= Math.pow(26,len - i - 1); sum += temp; } return sum; }
|
倒序遍历
即从字符串的最高位,即进制转换里的最低位开始转换。
1 2 3 4 5 6 7 8 9 10
| public int titleToNumber(String s) { char[] c = s.toCharArray(); int res = 0; int mul = 1; for (int i = c.length - 1; i >= 0; i--) { res = res + mul * (c[i] - 'A' + 1); mul *= 26; } return res; }
|