Excel Sheet Column Title Excel表列名稱

麥田裡的哈士奇發表於2018-11-07

給定一個正整數,返回它在 Excel 表中相對應的列名稱。

例如,

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

示例 1:

輸入: 1
輸出: "A"

示例 2:

輸入: 28
輸出: "AB"

示例 3:

輸入: 701
輸出: "ZY"

思路:這道題其實就是數字和字母的權重轉化問題,想一想我們怎麼把10進位制轉換成8進位制,其實就是對每個10進位制的數字對8取餘然後除8(這裡需要注意的是這道題和10進位制轉8進位制最大的不同是:8進位制的數字為0-7,而這道題的數字為1-26,所以我們雖然是除以8,但是要處理26這個邊界條件),那麼同理由於是26個英文字母,所以權重是26,我們依然對數字先取餘操作然後除以8。

參考程式碼:

class Solution {
public:
    string convertToTitle(int n) {
        string res;
        while (n) {
            int remaider = ((n%26)==0)?26:(n%26); //1~26
            res = char(remaider-1 + 'A')+res;
            n = (n-remaider)/26;
        }
        return res;
    }
};

 

 

相關文章