给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
解题思路
将输入的数用类似于求十进制的时候的操作:模十取低位,除以十舍掉低位
将'A' + (n - 1) % 26
插入到结果的前面,比如1
就是A
,26
就是Z
这道题容易被误解为常规的26
进制,但是不能完全按照26
进制来做
因为这里没有类似于"进位"的机制,比如26 = Z
,27 = AA
比如当n = 26
时如果没有n--
,则结果会变成AZ
代码
class Solution {
public String convertToTitle(int n) {
StringBuilder result = new StringBuilder();
while (n != 0) {
result.insert(0, (char) ('A' + (n - 1) % 26));
n--;
n /= 26;
}
return result.toString();
}
}