1、题目
题目:给你一个整数columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
* A -> 1
* B -> 2
* C -> 3
* ...
* Z -> 26
* AA -> 27
* AB -> 28
2、思路
1、首先这可以理解为一道进制转换题,由十进制转为26进制
2、需要注意的是该26进制和普通进制不同的是:第一位是1,最后一位是26(而十进制是第一位是0,最后一位是9)
3、因此只需要把columnNumber每次-1再取余就可以做到余数-1,然后整除26继续循环取余,余数放入char缓冲区
4、还需注意一个点,得到的余数如果是0代表A,A的ASCII码是65,因此余数+65转为char放入缓冲区
5、最后反转缓冲区输出成String即可
3、代码
class Solution {
public String convertToTitle(int columnNumber) {
StringBuilder sb = new StringBuilder();
while (columnNumber>0){
columnNumber--;
sb.append((char)(columnNumber%26 + 65));
columnNumber/=26;
}
sb.reverse();
return sb.toString();
}
}