Saturday, April 4, 2015

Excel Sheet Column Title


Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
Solution:
相当于10进制转26进制。对应的时候注意26进制里最小的对应10进制里的1, 而不是0, 所以在while循环中要n--
Run time complexity is O(n), constant space.
public class Solution {
    public String convertToTitle(int n) {
        if(n <= 0) {
            throw new IllegalArgumentException("Input number is invalid!");
        }
        
        StringBuilder sb = new StringBuilder();
        while(n > 0) {
            n--;  //1->A
            char c = (char)(n % 26 + 'A');
            sb.append(c);
            n /= 26;
        }
        return sb.reverse().toString();
    }
}

No comments:

Post a Comment