LeetCode 168——Excel表列名称

一、题目介绍

给定一个正整数,返回它在 Excel 表中相对应的列名称。

例如,

    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...
示例 1:

输入: 1
输出: "A"
示例 2:

输入: 28
输出: "AB"
示例 3:

输入: 701
输出: "ZY"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

本题可以将这种表示方法理解为26进制数,每一位数最小为A,最大为Z。当所给数值大于26时,需要进位表示。比如27需要用AA表示,28则需要用AB表示。跟十进制的满10进1是一个道理,这里的26进制是满26进A。具体实现请见代码。

三、解题代码

class Solution {
public:
    string convertToTitle(int n) {
        char baseCh = 'A' - 1;
        string str;
        int r = 0;
        while(n > 26)
        {
            r = n % 26;
            n = n / 26;
            if(r == 0)
            {
                str = 'Z'+ str;
                n -= 1;
            }
            else
                str = char(baseCh + r) + str;

        }
        str = char(baseCh + n) + str; 
        return str;
    }
};

四、解题结果

发布了139 篇原创文章 · 获赞 122 · 访问量 4720

猜你喜欢

转载自blog.csdn.net/qq_39661206/article/details/103865599
今日推荐