| 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;
}
};
本文介绍了一种特殊的整数序列——计数读数序列,并提供了一个C++实现方案。该序列从1开始,后续每一项都是对前一项的描述。例如,1被描述为“one 1”即11;11被描述为“two 1s”即21;21被描述为“one 2, then one 1”即1211。文章通过递归方法生成指定位置的序列。
305

被折叠的 条评论
为什么被折叠?



