168. excel sheet column title 解法

168. Excel Sheet Column Title

Difficulty: Easy

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

1
2
3
4
5
6
7
8
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...

Example 1:

1
2
Input: 1
Output: "A"

Example 2:

1
2
Input: 28
Output: "AB"

Example 3:

1
2
Input: 701
Output: "ZY"

解法

  这道题乍一看像是求数的26进制表示,但是还是和26进制表示有一点区别,因为这道题不允许出现数字0。所以判断根据余数是否为0处理不同情况很重要!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

char * (int n){
char *s = (char *)malloc(sizeof(char)*1024);
int i = 0, r;
while(n){
r = n%26;
if(r != 0){
s[i++] = inttochar(r);
n = n / 26;
}
else{
s[i++] = inttochar(26);
n = n / 26 - 1;
}
}
for(int j = 0; j < i - j - 1;j++){
s[j] ^= s[i - j - 1];
s[i - j - 1] ^= s[j];
s[j] ^= s[i - j - 1];
}
s[i] = '