思路
虽然是简单题,但还是挖了坑。。其余的都很容易理解,需要注意的是类似
52
、
701
这种情况。
遇到这个题第一反应就是转化为
26进制
进行解题,但是在实际操作过程中发现,如果按照处理
2进制
的方法处理,遇到
52
、
701
时,对应的答案为
B @(2 0)
、
[email protected](1 0 25)
,与正确答案
AZ
、
ZY
根本对应不上。
造成这种问题的根本原因是对于26进制而言,每一位的表示范围是0-25,而A-Z对应的是1-26,所以需要将A-Z的映射关系进行改变,同时因为改变映射关系之后A-0,…Z-25,所以每一次的值也要减1。
代码
class Solution {
public String convertToTitle(int columnNumber) {
String ans = "";
while(columnNumber!=0)
{
columnNumber--;
int i=columnNumber%26;
columnNumber/=26;
char ch = (char)('A'+ i);
ans = String.valueOf(ch) + ans;
}
return ans;
}
}