题目
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) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(n<1) return "";
string p="1";
string q="";
int count=1;
for(int i=2;i<=n;i++) {
q="";
for(int j=0;j<p.length();j++) {
char ch=p[j];
count=1;
while(j+1<p.length() && p[j+1]==ch){
count++;
j++;
}
char cou='0'+count;
q=q+cou+ch;
}
p=q;
}
return p;
}
};附加:C++ 中int,char,string,CString类型转换
(1)在C标准库里面,string 转 int,使用atoi:
string text = "152";
int number = std::atoi( text.c_str() );
(2)string 转 char *
char *p = string.c_str();
......
本文介绍了一种通过迭代方法生成计数与描述序列的算法实现,并提供了C++代码示例。该序列从1开始,后续每一项是对前一项的计数与描述。
497

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



