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; } };