首页 > 代码库 > 【leetcode 进制转换】Excel Sheet Column Title
【leetcode 进制转换】Excel Sheet Column Title
1、题目
Given 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
2、分析
excel中的序是这样排的:A~Z,AA~ZZ,AAA~ZZZ.......
本质是进制转换,将n转化为26进制,转化过程如下(括号里的是26进制数):
1->(1)->A
2->(2)->B
...
26->(10)->Z
27->(11)->AA
28->(12)->AB
.....
52->(20)->AZ
53->(21)->BA
因此可以将n转化为26进制表示的数,然后对每一位的数,根据『1->A,2->B,3->C....25->Y,26->Z』来转化。
当然,按照进制转换的方法(不断地除26取余数),不可能有26的余数,比如:52->(20)->AZ,此时余数是0,这种情况要特殊处理,很简单,如下面的代码所示:
3、代码
[cpp] view plaincopy
- string convertToTitle(int n) {
- string str;
- while(n){
- int r=n%26;
- n=n/26;
- if(r==0){ //为26的整数倍,该位设置为Z,n减掉1
- str+=‘Z‘;
- n--;
- }else{
- str+=(‘A‘+r-1);
- }
- }
- //反转
- string result;
- for(int i=str.size()-1;i>=0;i--){
- result+=str[i];
- }
- return result;
- }
【leetcode 进制转换】Excel Sheet Column Title
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。