您的位置:首页 > 其它

Excel Sheet Column Title

2015-12-25 19:08 337 查看
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
52 -> AZ

网友说:

Excel序是这样的:A~Z, AA~ZZ, AAA~ZZZ, ……

本质上就是将一个10进制数转换为一个26进制的数

注意:由于下标从1开始而不是从0开始,因此要减一操作。

注意是转换是从1开始计数的,不是从0开始的,所以不是直接地做26进制转换那么简单,需要中间做一些变换。试了几次, 比如 26 - Z, 52->AZ,试出了正确的代码。

class Solution {
public:
string convertToTitle(int n)
{
int val=n;
string res;
char begin='A';
for(;val!=0;)
{
char ch;
int temp=(val-1)%26;
ch=begin+temp;    //这个地方告诉自己字符运转
res=ch+res;          //这儿看仔细字符和string的顺序,可如此
val =(val-1)/26;     //这儿val减1之后再去除,自己就是输入26之后错误,通过测试用例才发现的!!
}
return res;
}
};


论坛里见到这个问题:如何把string的元素逆序?

我直接想到的是利用反向迭代器reverse_iterator:rbegin()和rend():

string str1("1234567890");

string str2(str1.rbegin(), str1.rend());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: