Skip to content

Files

Latest commit

2f91e35 · Mar 20, 2016

History

History
73 lines (66 loc) · 1.6 KB

168. Excel Sheet Column Title.md

File metadata and controls

73 lines (66 loc) · 1.6 KB

#168. 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 

这个绕了一下进制的问题... 后来发现别人的一个解决方法,竟然没有想到。

Java Solution

public class Solution {
    public String convertToTitle(int n) {
        int r=0;
        StringBuffer s = new StringBuffer("");
        while(n>0){
            if(n%26==0){
                r=26;
                s.append(String.valueOf((char)(r+64)));
                n = n/26 -1;
            }else {
                r=n%26;
                s.append(String.valueOf((char)(r+64)));
                n = n/26;
            }
        }
        return s.reverse().toString();
    }
}

Java Solution(less lines)

public class Solution {
    public String convertToTitle(int n) {
        int r=0;
        StringBuffer s = new StringBuffer("");
        while(n>0){
            r = n%26==0?26:n%26;
            s.insert(0, String.valueOf((char)(r+64)));
            n = r==26?n/26-1:n/26;
        }
        return s.toString();
    }
}

把字符做成字母表,并把Z放置在第一位。

Java Solution(alpha)

public class Solution {
    public String convertToTitle(int n) {
        char[] alpha = "ZABCDEFGHIJKLMNOPQRSTUVWXY".toCharArray();
        String s = "";
        while(n != 0){
            s = alpha[n % 26] + s;
            if(n % 26 == 0)
                n -= 26;
            n /= 26;
        }
        return s;
    }
}