题目描述:报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
1, 11, 21, 1211, 111221, ...
1 读作 "one 1" -> 11.
11 读作 "two 1s" -> 21.
21 读作 "one 2, then one 1" -> 1211.
1, 11, 21, 1211, 111221, ...
1 读作 "one 1" -> 11.
11 读作 "two 1s" -> 21.
21 读作 "one 2, then one 1" -> 1211.
给定一个整数 n, 返回 第 n 个顺序。
难度等级:简单
注意事项:整数的顺序将表示为一个字符串。
样例
给定 n = 5, 返回 "111221".
参考别人的代码如下:
class Solution {
public:
/**
* @param n the nth
* @return the nth sequence
*/
string countAndSay(int n) {
// Write your code here
if(n==0) return "";
string res="1";
for(int i=1;i<n;++i)
{
char ch=res[0];
string str="";
int cnt=1;
for(int j=1;j<res.size();j++)
{
if(res[j]==ch){
cnt++;
continue;
}
else if(cnt>0)
{
str=str+char(cnt+'0')+ch;
cnt=1;
ch=res[j];
}
}
str=str+char(cnt+'0')+ch;
res=str;
}
return res;
}
};