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;
    }
};

四、解題結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章