【leetcode】168. Excel Sheet Column Title
2016-07-12 21:16
363 查看
一、题目描述
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
题目解读:按照excel上面的title一样,输入一个数字输出对应的标题。
思路:一开始分情况讨论,思路非常混乱,因为除了AA....ZZ还有AAA,AAAA。分情况的话永远写不完啊。于是谷歌了一下,发现可以递归。每次算n的余数然后在结果字符串后面加上这个余数对应的字符即可,然后n=n/26。
c++代码(0ms,11.57%)
总结:在写代码时,遇到char转string的问题。用如下代码
别人的代码:
递归:
class Solution {
public:
string convertToTitle(int n)
{
return ((n-1)/26? convertToTitle((n-1)/26) : "") + string(1, 'A'+(n-1)%26);
}
};
迭代:
class Solution {
public:
string convertToTitle(int n) {
string s;
while(n)
{
s += 'A'+(n-1)%26;
n = (n-1)/26;
}
reverse(s.begin(), s.end());
return s;
}
};
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上面的title一样,输入一个数字输出对应的标题。
思路:一开始分情况讨论,思路非常混乱,因为除了AA....ZZ还有AAA,AAAA。分情况的话永远写不完啊。于是谷歌了一下,发现可以递归。每次算n的余数然后在结果字符串后面加上这个余数对应的字符即可,然后n=n/26。
c++代码(0ms,11.57%)
class Solution { public: string convertToTitle(int n) { int p; map<int, char> letter; letter[0] = 'Z'; letter[1] = 'A'; for(int i=2; i<=26; i++){ letter[i] = letter[i-1]+1; }//for string s; p = n%26; string s0(&letter[p]); if(p == 0) n--; n = n/26; if(n) return convertToTitle(n)+s0; else return s0; } };
总结:在写代码时,遇到char转string的问题。用如下代码
char ch; string s(&ch);
别人的代码:
递归:
class Solution {
public:
string convertToTitle(int n)
{
return ((n-1)/26? convertToTitle((n-1)/26) : "") + string(1, 'A'+(n-1)%26);
}
};
迭代:
class Solution {
public:
string convertToTitle(int n) {
string s;
while(n)
{
s += 'A'+(n-1)%26;
n = (n-1)/26;
}
reverse(s.begin(), s.end());
return s;
}
};
相关文章推荐
- Android开发——Activity生命周期
- 开始制作国产的 scratch
- 深度学习目前主要有哪些研究方向?
- C++ 类的内存分布
- POJ 1077 Eight 八数码问题[康托展开 + BFS]
- 如何创建yum本地源?
- $.getjson()【笔记】
- UESTC 2016 Summer Training #1 Div.2 F - Mission in Amman (A) 动态维护(刷新:--、++)
- hdu 5123 who is the best?(数组处理)
- 回文链表
- java基础知识篇2
- 等号赋值与memcpy的效率问题
- 使用Clean() 去掉由函数自动生成的字符串中的双引号
- npm 私服(上)
- 写了一个合并的,大家可以参考下
- Codeforces Round #361 (Div. 2) C. Mike and Chocolate Thieves 二分
- python编写IP地址与十进制IP转换脚本
- 【Leetcode】371. Sum of Two Integers
- Android简易实战教程--第七话《在内存中存储用户名和密码》
- Android简易实战教程--第七话《在内存中存储用户名和密码》