leetcode-168-Excel表列名称
这是我参与更文挑战的第7天,活动详情查看: 更文挑战
[博客链接]
[题目描述
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
Related Topics 数学 字符串
👍 387 👎 0
[题目链接]
[github地址]
[思路介绍]
思路一:26进制转换+特殊判定
- 久违的简单题,可惜还是没有一次AC,对于题意理解还欠缺一些
- 整体题意还是比较清晰的,类似二进制的转换
- 区别在于本题没有0这个数也就是说每位最小位A
- 然后通过char值可以进行转换
- 本题特殊测试用例 52 701 1
public String convertToTitle(int columnNumber) {
String res = "";
while (columnNumber != 0) {
int temp = columnNumber % 26 == 0 ? 26 : columnNumber % 26;
//因为不能有0 所以需要当余数为0时需保留当前位置Z,并当前运算数-26
if (temp == 26) {
columnNumber -= 26;
}
columnNumber = columnNumber == 26 ? 1 : columnNumber / 26;
res = Character.valueOf((char) (temp + 64)).toString() + res;
}
return res;
}