题目描述
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
思路分析
根据所描述的现象,是将一个数字转换成26进制表示,但是因为26本身也只占一位(最低位是从1开始,而不是从0开始),因此 在转换之前,要先对原数减1。比如26转换前先减1为25,再对26求余,得到25,再加上'A',得到'Z'。
再比如27,先减1,得到26,26%26为0,0+'A'为'A'。参考10进制理解即可!
代码实现
class Solution {
public:
string convertToTitle(int n) {
// 26进制
string res;
while(n) {
n--;
res.append(, n % + 'A');
n = n / ;
}
return string(res.rbegin(), res.rend());
}
};
复制代码