0%

leetCode-168:Excel Sheet Column Title

问题描述

给定一个数字,要求将其转换成Excel表格表头字母。其转换规则如下:A -> 1、B -> 2、C -> 3、... Z -> 26、AA -> 27、AB -> 28、AC -> 29...。题目链接:点我

样例输入输出

输入:1

输出:A

输入:701

输出:ZY

问题解法

此题是一道类似26进制的转换题,只是没有0,所以只要对26的倍数的值进行额外处理即可,其他操作方式跟进制转换一样。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public String convertToTitle(int columnNumber) {
char[] chars = {'Z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'};
StringBuilder sb = new StringBuilder();
while (columnNumber != 0) {
int modNum = columnNumber % 26;
sb.append(chars[modNum]);
columnNumber /= 26;
if (modNum == 0) {
columnNumber--;
}
}

return sb.reverse().toString();
}
}