参考链接
http://blog.youkuaiyun.com/xshalk/article/details/8183499
http://blog.youkuaiyun.com/doc_sgl/article/details/11956229
题目描述
The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
题目分析
总结
代码示例
class Solution {
public:
string countAndSay(int n) {
string ret = "1";
for(int i = 1;i<n;i++)
{
ret = countAndSayCore(ret);
}
return ret;
}
string countAndSayCore(string in)
{
string ret = "";
int count = 1;
for(int i = 1;i<in.size();i++)
{
if(in[i-1] != in[i])
{
if(count > 10)
cout<<"error"<<endl;
ret += char(count+'0');
ret += char(in[i-1]);
count = 1;
}
else
{
count++;
}
}
ret += char(count+'0');
ret += in[in.size()-1];
return ret;
}
};
class Solution {
public:
string countAndSay(int n) {
string ret = "1";
for(int i = 1;i<n;i++)
{
ret = countAndSayCore(ret);
}
return ret;
}
string countAndSayCore(string in)
{
string ret = "";
int count = 1;
for(int i = 1;i<in.size();i++)
{
if(in[i-1] != in[i])
{
if(count > 10)
cout<<"error"<<endl;
ret += char(count+'0');
ret += char(in[i-1]);
count = 1;
}
else
{
count++;
}
}
ret += char(count+'0');
ret += in[in.size()-1];
return ret;
}
};
推荐学习C++的资料
C++标准函数库
在线C++API查询

本文深入探讨了 C++ 编程中 Count and Say 序列问题的解决方法,提供了核心代码示例及关键分析。通过实例解析,详细解释了如何生成指定序列并实现其功能。
493

被折叠的 条评论
为什么被折叠?



