Leet Code 168. Excel Sheet Column Title
题目描述:
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: “A”
示例 2:
输入: 28
输出: “AB”
示例 3:
输入: 701
输出: “ZY”
解题思路:
从例子出发,分两种情况讨论,是否为26的倍数,是的话用Z表示,否则另外算索引
代码:
package easy;
public class ExcelSheetColumnTitle {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n=52;
System.out.println(convertToTitle(n));
}
public static String convertToTitle(int n) {
if (n <= 0) return "";
StringBuilder sb = new StringBuilder();
while (n > 0) {
if (n % 26 == 0) {
sb.insert(0, 'Z'); // 52 = "AZ"
n = n / 26 - 1;
} else {
sb.insert(0, (char)(n % 26 - 1 + 'A')); // 27 = "AA"
n = n / 26;
}
}
return sb.toString();
}
}