Excel Sheet Column Title
Total Accepted: 17772 Total Submissions: 100508Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB
Credits:
Special thanks to @ifanchu for adding this problem and creating all test cases.
开始看到这个题目,最开始是凭直觉就往26进制方面去想:
while(n>0)
{
c=(n-1)%26+1;
n/=26;
cstr[len++]=c+'A'-1;
}
但是后来发现输入26的时候会输出AZ,这是因为,本来26进制是0~25,但是,这里应该是每位1~26,用n/=26的
方式并不能将26的低位舍弃,需要手动把低位减去,这样就可以了。
class Solution {
public:
string convertToTitle(int n) {
int len=0,Count=1,c;
char cstr[100],temp;
while(n>0)
{
c=(n-1)%26+1;
n-=c;
n/=26;
cstr[len++]=c+'A'-1;
}
for(int i=0;i<len/2;i++)
{
temp=cstr[i];
cstr[i]=cstr[len-i-1];
cstr[len-i-1]=temp;
}
cstr[len]='\0';
return string(cstr);
}
};