题意
根据数字返回字母。
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
我的思路
通过StringBuilder来存字符,利用A,B,C…之间asc码的关系。实现一个伪二十六进制算法,为什么说伪呢,注意这里面有个坑,到了26并没有进位。在27处才发生了进位。
我的代码
1 | public class Solution { |
大神代码
大神把上面说的那个坑处理的更漂亮。1
2
3
4
5
6
7
8
9
10
11public class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
int tmp = (n - 1) % 26;
sb.insert(0, (char) ('A' + tmp));
n = (n - 1) / 26;
}
return sb.toString();
}
}