Excel表列名称(简单)
2020年5月19日
题目来源:力扣
解题
这道题,很明显就是利用字符数字的asall码来变成字符字母。
按照进制转换的题目去做,那就是十进制转换成二十六进制,这里我用了StringBuilder来存字符串,有两种方法可以得出最后的结果,用insert()方法把每次得到的字符插到字符串最前面;或者按顺序放,最后用reverse()方法反转。
做到这一步就有最后一个问题了,26对应的应该是Z,这里对26取余后是0,A+0-1并不能得到Z这个答案,所以当余数为0时,把余数改为26,再把n减去1,减1操作是为了把进制转换的0-25变成1-26,可自行体会。
class Solution {public String convertToTitle(int n) {StringBuilder sb=new StringBuilder();while(n!=0){int te=n%26;if(te==0){te=26;n-=1;}sb.append((char)('A'+te-1));n/=26;}return sb.reverse().toString();}
}