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 ans,ans1; ostringstream os; if (!n) return ans; if (1 == n){ ans = "1"; return ans; } ans1 = countAndSay(n-1); int counter = 1; for(int i = 1; i < ans1.size(); i++){ if (ans1[i] == ans1[i-1]){ counter++; }else{ os << counter << ans1[i-1]; counter = 1; } } os << counter << ans1[ans1.size() -1]; ans = os.str(); //cout << "n: " << n << " sequence:" << ans << endl; return ans; }};