168. Excel表列名称

题目描述

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

1
2
3
4
5
6
7
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28

输入输出

1
2
3
4
5
6
7
8
9
10
11
输入:columnNumber = 1
输出:"A"

输入:columnNumber = 28
输出:"AB"

输入:columnNumber = 701
输出:"ZY"

输入:columnNumber = 2147483647
输出:"FXSHRXW"

基本思路

类似于进制转换 但是关键在于每一个columnNumber在操作前需要减一操作(本题从1开始)

java实现

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public String convertToTitle(int columnNumber) {
StringBuilder sb = new StringBuilder();
while(columnNumber > 0){
columnNumber--;
sb.append((char)('A' + columnNumber % 26));
columnNumber /= 26;
}
return sb.reverse().toString();
}
}