leetcode [#168]

目录

题目

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();
}
}

注意事项

  1. 本题相当于将输入的数字转换成二十六进制数(只不过不是0-25,而是1-26),然后使用A-Z代表1-26这26个数字。