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: std::string solve(std::string s) { std::string t; char c = s[0]; int count = 1; for (int i = 1; i < s.size(); i++) { if(s[i] == c) { count++; } else { t = t + (char)(count + '0') + c; count = 1; c = s[i]; } } t = t + (char)(count + '0') + c; return t; } std::string countAndSay(int n) { std::string res = "1"; for (int i = 1; i < n; i++) { res = solve(res); } return res; } };