Skip to content

Latest commit

 

History

History
executable file
·
71 lines (59 loc) · 1.33 KB

171. Excel Sheet Column Number.md

File metadata and controls

executable file
·
71 lines (59 loc) · 1.33 KB

171. Excel Sheet Column Number

Question:

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

Thinking:

  • Method1:通过hashmap实现,速度较慢
class Solution {
    public int titleToNumber(String s) {
        Map<Character, Integer> map = new HashMap<>();
        Character c = 'Z';
        for(int i = 26; i > 0; i--){
            map.put(c, i);
            c--;
        }
        int count = 0;
        if(s.length() == 0) return count;
        for(int i = 0; i < s.length(); i++){
            count = map.get(s.charAt(i)) + count * 26;
        }
        return count;
    }
}

二刷

  1. 一刷中用hashmap唯一的用处就是记录char和int的对应关系,但是我们完全可以通过当前char的数值和A之间的差值+1获得数字。
class Solution {
    public int titleToNumber(String s) {
        if(s == null || s.length() == 0) return 0;
        int result = 0;
        for(int i = 0; i < s.length(); i++){
            result *= 26;
            int c = s.charAt(i) - 'A' + 1;
            result += c;
        }
        return result;
    }
}