题意:
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
给出一个正整数,返回相应的列标题出现在一个Excel表。
仔细观察示例,会发现1-26对应于A-Z,即十进制数转二十六进制数
Java代码:
public class Solution {
public String convertToTitle(int n) {
if(n <= 0) return null;
String result = "";
while(n != 0) {
result = (char)('A' + (n - 1) % 26) + result;
n = (n - 1) / 26;
}
return result;
}
}
C++代码:
class Solution {
public:
string convertToTitle(int n) {
if(n <= 0) return NULL;
string result;
while(n) {
result = (char)((n - 1) % 26 + 'A') + result;
n = (n - 1) / 26;
}
return result;
}
};
解题思路:10进制数转26进制数
注意:
result = (char)('A' + (n - 1) % 26) + result;
这行代码不能替换为
result += (char)('A' + (n - 1) % 26);
//等同于result = result + (char)('A' + (n - 1) % 26);
如果替换,结果字符串顺序相反