链接:38. 外观数列
题解:
class Solution {
public:
string countAndSay(int n) {
int begin = 0;
std::string result = "1";
dfs(begin, n, result);
return result;
}
void dfs(int begin, int n, std::string& result) {
if (begin >= n-1) {
return;
}
int i = 0;
std::string tmp;
// 计算下一层输入字符串
while (i < result.size()) {
int cnt = 0;
char t = result[i];
while (i < result.size()) {
if (result[i] != t) {
break;
}
++i;
++cnt;
}
tmp += std::to_string(cnt) + t;
}
result = tmp;
dfs(begin+1, n, result);
}
};



