比较简单的一个模拟题,关键是花点时间读懂题意就可以了。
class Solution {
public:
string countAndSay(int n) {
//第一项默认1
string res = "1";
//从第二项开始,一共n-1项
for(int i = 0;i < n - 1;i ++) {
string tmp;//存储每一项的结果
//双指针算法
for(int j = 0;j < res.size();) {
int k = j + 1;
while(k < res.size() && res[k] == res[j]) k ++;
tmp += to_string(k - j) + res[j];//这个k-j注意不要算错了 不是k-j+1
//更新一下j
j = k;
}
res = tmp;
}
return res;
}
};