leetcode 64: Count and Say
Count
and SayMar
6 '12
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 string s="1"; for(int i=1; i<n; i++ ) { s = countRec(s); } return s; } private: string countRec(string s) { string re; char c = s[0]; int i=1; int count = 1; while(i<s.size() ) { if( c==s[i]) { ++count; } else { re.push_back(count + '0'); re.push_back(c) ; count=1; c=s[i]; } ++i; } re.push_back(count + '0'); re.push_back(c) ; return re ; } };