Toasobi
Excel表列名称(进制转换问题)
本文最后更新于2023年09月05日,已超过431天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
题目:
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
思路:
这是一道进制转换题,26一轮,用十进制数表示,所以是一道十进制转26进制问题
需要十分注意的点是:本题需要我们将从1开始,我们需要使用-1 熨平取模的问题。 因为x%26=[0,25] 但是我们取从[1-26]对应[A-Z] 直接取模 26%26=0 不在我们范围内 所以我们采用-1 [0-25]对应[A-Z] (26-1)%26 =25 25+'A'='Z'
代码:
class Solution {
public String convertToTitle(int columnNumber) {
StringBuilder sb = new StringBuilder();
while (columnNumber > 0) {
columnNumber--;//解决从1开始的关键
sb.append((char) ('A' + columnNumber % 26));
columnNumber /= 26;
}
return sb.reverse().toString();
}
}