1. 程式人生 > >LeetCode168Excel表列名稱

LeetCode168Excel表列名稱

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

例如,

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

示例 1:

輸入: 1
輸出: "A"

示例 2:

輸入: 28
輸出: "AB"

示例 3:

輸入: 701
輸出: "ZY"
char* convertToTitle(int n) {
    //減一除26取餘,直接預先分配一個足夠大的空間
    int x;
    char *s,a;
    int size = 10;
    s = (char *)malloc(size * sizeof(char));
    int i = 0;
    if(n <= 26) 
        {
        s[0] = n + 64;
        return s;
    }
    while(n){
        x = (n - 1) % 26;
        s[i++] = x + 65;
        n = (n - 1)/26;
    }
    int len = strlen(s);
    for(int i = 0; i < len/2; i++)
        {
        a = s[i];
        s[i] = s[len-1-i];
        s[len-1-i] = a;
    }
    return s;
}