168 Excel表列名稱

2020-08-09 14:19:42

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

例如,
1 -> A
2 -> B
3 -> C

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

範例 1:
輸入: 1
輸出: 「A」

範例 2:
輸入: 28
輸出: 「AB」

範例 3:
輸入: 701
輸出: 「ZY」

方法1:
主要思路:
(1)直觀的想,就是模仿十進制的26進位制,只不過這裏在處理減少一位的方式是n=(n-1)/26;,而不是直接除以26,其他的正常的模仿生成即可;

class Solution {
public:
    string convertToTitle(int n) {
        string res;
        while(n){
            int tmp=n%26;
            if(tmp==0)//等於零時,表示最後以爲可以整除掉26,則加入對應的‘Z’
                res='Z'+res;
            else//否則,加入對應的字元
                res=(char)(tmp-1+'A')+res;
            n=(n-1)/26;//減少一位
        }
        return res;
    }
};