题目描述:(链接)
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.
解题思路:
时间复杂度O(n^2)
1 class Solution { 2 public: 3 string countAndSay(int n) { 4 if (n == 0) return string("1"); 5 6 string result("1"); 7 8 for (int i = 1; i < n; ++i) { 9 string tmp; 10 int cnt = 1; 11 int len = result.size(); 12 for (int j = 1; j <= len; ++j) { 13 if (result[j] == result[j - 1]) { 14 ++cnt; 15 } else { 16 tmp.push_back(cnt + '0'); 17 tmp.push_back(result[j - 1]); 18 cnt = 1; 19 } 20 } 21 result = tmp; 22 } 23 return result; 24 } 25 };