您的位置:首页 > 其它

[LeetCode]Count and Say

2013-12-04 00:37 323 查看
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 str="1";
if(n==1) return str;

int k=0;
int i,j;
for(i=1;i<n;i++)
{
string ans="";
int pos=0;
char ch=str[0];
int len=str.size();
for(j=1;j<=len;j++)
{
if(str[j]!=ch||j==len)
{
ans+=char((j-pos)+'0');
ans+=ch;
pos=j;
if(j!=len) ch=str[j];
else break;
}
}
str=ans;
}
return str;
}
};


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: