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
作为一枚纯洁滴小白,第一反应就是。。。excel sheet是虾米。。。蓝后。。。百度。。。出来一堆如何使用excel,好吧,一如既往的不靠谱。。。信男淫会专一也不能信百度。。。扯淡结束。。。
首先是前26个,刚好是26个大写英文字母,over
接下来是AA AB,那么猜想如果是CA,那么,应该是按照26进制26*3+1
那么就搞定了,问题变成了26进制的问题,也就是十进制转换为26进制
class Solution {
public:
string convertToTitle(int n) {
if(n < 1)
return "";
else
{
string result = "";
while(n)
{
n--; //为了下面计算时候可以+A,因为A本身是1而不是0
char c = n%26 + 'A'; //得到result最右一位
result += c; //原来字符串可以加法。。。以前都不知道。。。
n /= 26; //进行左一位的计算
}
reverse(result.begin(),result.end()); //由于result加的时候,是把已知的放在了左边,所以要反转一下result
return result;
}
}
};