Count and Say

 

 

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

Note: The sequence of integers will be represented as a string.

class Solution {
public:
string countAndSay(int n) {

string res="1";
int k=1;
while(k<n)
{
res=solve(res);
k++;
}
return res;
}

string solve(string res)
{
string ans;
char pre=res[0];
int k=1;
int i;
for(i=1;i<res.length();i++)
{
if(pre==res[i])
{
k++;
}
else
{
char temp=k+'0';
ans+=temp;
ans+=pre;
pre=res[i];
k=1;
}
}
char temp=k+'0';
ans+=temp;
ans+=pre;

return ans;
}

};