public class Solution {
public String convertToTitle(int columnNumber) {
if (columnNumber <= 0) {
return "";
}
StringBuilder sb = new StringBuilder();
while (columnNumber > 0) {
columnNumber--;
sb.append((char) ('A' + columnNumber % 26));
columnNumber /= 26;
}
return sb.reverse().toString();
}
}
给你一个整数 columnNumber
,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入:columnNumber = 1 输出:"A"
示例 2:
输入:columnNumber = 28 输出:"AB"
示例 3:
输入:columnNumber = 701 输出:"ZY"
示例 4:
输入:columnNumber = 2147483647 输出:"FXSHRXW"
思路如下:
首先,将 1-26 映射到 0-25,这样可以方便后续计算。然后,不断地取出 columnNumber 的最低位,将其转换为对应的字母,并将其添加到 StringBuilder 中。接着,将 columnNumber 除以 26,继续求下一位,直到 columnNumber 为 0。最后,将 StringBuilder 中的字符串翻转,即可得到最终结果。在这里,我们增加了一个 if 判断来处理 columnNumber 小于等于 0 的情况。如果 columnNumber 不符合要求,则直接返回一个空字符串。(Cited from:ChatGPT)