Saturday, April 4, 2015

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 
Solution:
可以看出规律是 number = number * 26 + s.charAt(i) - 'A' + 1
Run time complexity is O(n), constant space.
public class Solution {
    public int titleToNumber(String s) {
        if(s == null || s.length() == 0) {
            throw new IllegalArgumentException("Input string is invalid!");
        }
        
        int i = 0;
        int number = 0;
        while(i < s.length()) {
            number = number * 26 + s.charAt(i) - 65 + 1; // s.charAt(i)-'A'+1
            i++;
        }
        return number;
    }
}

No comments:

Post a Comment