Notes: | |
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. | |
Solution: ... | |
*/ |
n=2 返回11
n=3 返回1211
n 表示要循环的次数:n-1
每一个返回值都与前一个序列有关系
class Solution {
public:
string countAndSay(int n) {
string res = "1";
for (int i = 2; i <= n; ++i)
{
stringstream ss;
int j = 0, N = res.size();
while (j < N) {
int k = j + 1;
while (k < N && res[k] == res[j])
k++;
ss << (k - j) << res[j];
j = k;
}
ss >> res;
}
return res;
}
};