给定一个正整数,返回它在Excel表中相对应的列名称。
示例:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
解题思路:
注:看清楚题目的本质思路,思路出现问题就想办法解决,不要一直换思路。
先通过一个映射存下1-26对应A-Z,相当于26进制,除26取余就行了,对出现的错误进行一些修正就好了。
代码:
class Solution {
public:
string convertToTitle(int n) {
string s;
map<int, char> m;
for(int i = 0; i < 26 ; i ++) {
m[i] = 'A'+i;
}
while(1) {
s.insert(s.begin(), m[(n-1)%26]);
if(n == 26) return s;
if(n%26 == 0) n--;
n = n / 26;
if(n == 0) return s;
}
}
};