LeetCode Day18:excel表列名称

发布于 2022-09-07  40 次阅读


题号: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;
    }
};

提交结果