171. Excel Sheet Column Number

Posted lyinfo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了171. Excel Sheet Column Number相关的知识,希望对你有一定的参考价值。

171. 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 
    ...

Example 1:

Input: "A"
Output: 1

Example 2:

Input: "AB"
Output: 28

Example 3:

Input: "ZY"
Output: 701

  这个,看完题目思路就很清晰了,完成一个26进制数转10进制数的算法,根据进制转换公式可知
    AA = 1*26^(2-1) + 1*26^(1-1) = 27,根据这个思路可写出代码:
    public  int titleToNumber(String s) {
        char[] str = s.toCharArray();
        int sum = 0;
        for (int i = str.length, j = 0; i > 0; i--, j++) {
            sum += (int) (dictionary.get("" + str[j]) * Math.pow(26, i - 1));
        }
        return sum;

    }

    private static Map<String, Integer> dictionary = new HashMap<String, Integer>() {
        {
            put("A", 1);
            put("B", 2);
            put("C", 3);
            put("D", 4);
            put("E", 5);
            put("F", 6);
            put("G", 7);
            put("H", 8);
            put("I", 9);
            put("J", 10);
            put("K", 11);
            put("L", 12);
            put("M", 13);
            put("N", 14);
            put("O", 15);
            put("P", 16);
            put("Q", 17);
            put("R", 18);
            put("S", 19);
            put("T", 20);
            put("U", 21);
            put("V", 22);
            put("W", 23);
            put("X", 24);
            put("Y", 25);
            put("Z", 26);
        }
    };

  提交答案后发现,不能每次都piapia直接写,仔细考虑考虑能少写不少代码,s中的某一位很简单就能得到数字和字母的映射关系,这个map写的手累不说,看起来也很傻??。   

    s.charAt(i) - ‘A‘ + 1

 





以上是关于171. Excel Sheet Column Number的主要内容,如果未能解决你的问题,请参考以下文章

171. Excel Sheet Column Number

java 171. Excel Sheet Column Number.java

java 171. Excel Sheet Column Number.java

java 171. Excel Sheet Column Number.java

171. Excel Sheet Column Number

171. Excel Sheet Column Number