1)题目
给你一个整数 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 <= columnNumber <= 231 - 1
————————————————
版权声明:本文为CSDN博主「鹿小鱼yx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_62053740/article/details/122304956
2)代码
class Solution {
public String convertToTitle(int columnNumber) {
StringBuffer sb = new StringBuffer();
while (columnNumber != 0) {
columnNumber--;
sb.append((char)(columnNumber % 26 + 'A'));
columnNumber /= 26;
}
return sb.reverse().toString();
}
}
本质上就是数数【26进制的数数 或者理解成十进制转为26进制】,从A数到Z,然后加1变成AA
即Z+1 = A,除法是为了计算处于第几段A-Z区间,求余是为了确定在A-Z的那个字母