首页 > 代码库 > Excel Sheet Column Number
Excel Sheet Column Number
https://oj.leetcode.com/problems/excel-sheet-column-number/
Related to question Excel Sheet Column Title
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
public class Solution { public int titleToNumber(String s) { Map map = new HashMap(); map.put(‘A‘, 1); map.put(‘B‘, 2); map.put(‘C‘, 3); map.put(‘D‘, 4); map.put(‘E‘, 5); map.put(‘F‘, 6); map.put(‘G‘, 7); map.put(‘H‘, 8); map.put(‘I‘, 9); map.put(‘J‘, 10); map.put(‘K‘, 11); map.put(‘L‘, 12); map.put(‘M‘, 13); map.put(‘N‘, 14); map.put(‘O‘, 15); map.put(‘P‘, 16); map.put(‘Q‘, 17); map.put(‘R‘, 18); map.put(‘S‘, 19); map.put(‘T‘, 20); map.put(‘U‘, 21); map.put(‘V‘, 22); map.put(‘W‘, 23); map.put(‘X‘, 24); map.put(‘Y‘, 25); map.put(‘Z‘, 26); char[] chars = s.toCharArray(); int result = 0; for(int i = 0; i < chars.length; i++){ int result_here = (Integer)map.get(chars[i]); for(int j = 0; j < chars.length - i -1; j++) result_here *= 26; result += result_here; } return result; }}
其实就是26进制转为10进制。这里26进制不太严谨,因为并非0-25。
改进点,可以直接考虑字母代表的是进制数字就是s.charAt(i) - ‘A‘ + 1。而免去前面赋值的过程。
Excel Sheet Column Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。