题号:168
难度:Easy
链接:https://leetcode.cn/problems/excel-sheet-column-title
思路
看标题第一眼还以为是要操作Excel……
相当于一个特殊的“26进制”,说特殊是因为,在正常的进制,如十进制中,“10”这个数是不会出现在某一位上的。而这里“26”,即“Z”却是可以出现的。
按进制从低位到高位转换成字符插入字符串尾,再反转输出即可。
代码
#include <string>
using std::string;
class Solution {
public:
string convertToTitle(int columnNumber) {
string s="";
while(columnNumber!=0){
int num = columnNumber%26==0?26:columnNumber%26;
s+=char(num+64);
columnNumber = (columnNumber-num)/26;
}
string res(s.rbegin(),s.rend());
return res;
}
};
Comments NOTHING