目录
题目
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
Example:
1 -> A
2 -> B
3 -> C
…
26 -> Z
27 -> AA
28 -> AB
解决方案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class Solution { public String convertToTitle(int n) { if(n <= 0) return ""; List<Integer> list = new ArrayList<>(); while(n > 0){ if(n % 26 == 0) { list.add(26); n = n / 26 - 1; } else { list.add(n % 26); n = n / 26; } } StringBuilder builder = new StringBuilder(); for(int i = list.size() - 1; i >= 0; i--) builder.append((char) ('A' + list.get(i) - 1)); return builder.toString(); } }
|
注意事项
- 本题相当于将输入的数字转换成二十六进制数(只不过不是0-25,而是1-26),然后使用A-Z代表1-26这26个数字。