您的位置:首页 > 其它

leetcode[38]Count and Say

2015-02-10 13:06 363 查看
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 next(string str)
{
int k=0;
string temp="0";
temp+=str[0];
int i;
for (i=1;i<str.size();i++)
{
if (str[i]==str[i-1])k++;
else
{
k++;
char temp1='0'+k;
temp+=temp1;
temp+=str[i-1];
k=0;
}
}
k++;
char temp1='0'+k;
temp+=temp1;
temp+=str[i-1];
return temp.substr(2,temp.size());
}
string countAndSay(int n)
{
string res="1";
for (int i=2;i<=n;i++)
{
res=next(res);
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: