问题
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例子
思路
- 方法1
两个关键点:
一:A-Z==1-26,减了一,则就是从0开始了,0-25对应者’A’-‘Z’,就是标准的26进制了
跟转换为10进制一样,区别是每次都让n-=1
【得到第二个字母时可以看成对一个新的n进行convertToTitle操作。】
二:n–,还是n-1?
如果是n-1, (26-1)%26->25为Z,且26/26=1,还会得到第二个数(1-1)%26->0为A,本来时Z->AZ
- 方法2
代码
//方法1
class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while(n>0) {
n-=1;
char c = (char)('A'+n%26);
sb.append(c);
n/=26;
}
return sb.reverse().toString();
}
}
//方法2