Excel Sheet Column Title
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); } };
版权声明:本文为博主原创文章,未经博主允许不得转载。