核心要义:我们要的是[0-25]这26个数字,因为用26这个数字的话无法处理 'Z'(c++),所以循环的开始,我们将n-1即可

python实现

class Solution:
    def ExcelTitle(self , n: int) -> str:
        # write code here
        chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        res = ""
        while n>0:
            n -= 1
            res = chars[n%26] + res
            n //= 26
        return res

c++实现

class Solution {
public:
    string ExcelTitle(int n) {
        // write code here
        string res;
        while(n--) {
            int temp = n % 26;
            n /= 26;
            res.insert(0, 1, temp + 'A');
        }
        return res;
    }
};

其实这像是个进制转换题,恶心的点就在从1开始,而不是从0开始,所以减一就解决了