题目:
给你一个整数 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
解决思路:
本质上是26进制,但是要注意,A-Z 表示1-26,而我们正常求进制的方法,余数范围为0-25.
假如:
y = x + x1*26^i…
我们想让x 变成 x-1. 那么y 对应的也要-1
y-1 = x-1+ x1*26^i
解决方法:
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();
}
}
有时候,简单的题也做不出来,会很受打击的,思维,思路我怎么就想不到?
多学习吧