题目:
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
解决方案:
public class Solution {
public String convertToTitle(int n) {
//char a[26]={'A','B}
String s = "";
String res = "";
while(n > 0){
n--;
//s = n%26 + s;
res = (char)(n%26+'A') + res;
n = n/26;
}
return res;
}
}
总结:这个题目最初做的时候就立马反应到是26进制与10进制的转换,但是不单单如此,最后还有个小细节,那就是这里的n--; 这里用n--的主要原因是后面要"+'A'"这一步,要是不去n--,而是在“+'A'”这里用+64,那么结果是不对的,因为会有%26后得0的情况。这样+64得到的是“@”而不是“A”,所以要用n--来解决这个问题。这个地方对应的例子是输入26得到的结果应该是"Z",而用+64得到的是“A@”.
浙公网安备 33010602011771号