[Lc]168Excel表列名称
Contents
题目
题解
和171相反的一个题嘛,这个稍微难一点。
这道题就是十进制转26进制,但是有一些需要注意的问题
- 首先不能从前往后插入数字,即先放最大位,我起初是按照这个思路做的,但是没成功,因为其循环的终止条件不好设置,若每次取余最终会留下一个余数,还需要再处理一次;而且需要在每次除完之后减1,反正很复杂不好理解,写不出。
- 其次要注意每次计算n要先减去1再取余,因为这个题其实不是严格的进制转换。是从1开始的进制转换,因此计算时要先减去1再取余,这个好理解一点。
class Solution {
public:
string convertToTitle(int n) {
string res;
if(n==0) return res;
while(n){
res.push_back(--n%26+'A');
n /= 26;
}
reverse(res.begin(),res.end());
return res;
}
};
Author ChrisHRZ
LastMod 2020-05-08