Saturday, January 3, 2015

168. Excel Sheet Column Title

Q:
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 


A:

public class Solution {
    public String convertToTitle(int n) {
        String result = "";
        while(n>0){
            int value = n % 26;
            if(value ==0){
                value = 26;
            }
            result = (char)('A'+value-1)+result;
            n = (n-value) / 26;
        }
        return result;
    }
}


Mistakes:
1: 应该是 (n+1)%26.  而非 n%26+1       自己想想为什么
2:  n%26 + 'A' 的结果是个int
      ‘A’ + n%26   的结果是????? 也TMD是int
3:  简单的拍脑门是不行的。
      肯定会出错,  例如 input == 26的时候,
不能简单的做除法。而应该是先减法,减去刚刚用过的部分,(为什么?因为我们前面不是简单的 求模运算,还对模==0的情况,做了特别处理  !!!!!!!!!


public class Solution {
    public String convertToTitle(int n) {
        if(n<=26){
            return ""+(char)('A'+n-1);
        }else{
            return convertToTitle( (n-1)/26 ) + convertToTitle( (n-1) %26 +1 );
        }
    }
}
 







No comments:

Post a Comment