leetcode-168.Excel表列名称

数学问题


题目详情

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1
B -> 2
C -> 3

Z -> 26
AA -> 27
AB -> 28


示例1:

输入:columnNumber = 1
输出:"A"

示例2:

输入:columnNumber = 28
输出:"AB"

示例3:

输入:columnNumber = 701
输出:"ZY"

示例4:

输入:columnNumber = 2147483647
输出:"FXSHRXW"
 

思路:
很明显可以看出这是一道26进制转换问题,但是需要注意的是从1开始没有0
因为从1开始,所以我们可以对每个数减一操作,从而使126变成025
从而完全符合了26进制转换规则

我的代码:

class Solution 
{
public:
    string convertToTitle(int columnNumber) 
    {
        string res;
        while (columnNumber > 0)
        {
            --columnNumber;    //整体减一
            res += columnNumber % 26 + 'A'; //每次判断对应哪个字母然后接在后面(反的)
            columnNumber /= 26;       

        }
        reverse(res.begin(), res.end());  //反转得到正确结果
        return res;
    }
};
posted @   ggaoda  阅读(5)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示