#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;
}
}