水题。
描述的还挺麻烦的,实际上就是纸老虎,用两个string,一个存上一轮的结果,一个用来更新出这一轮的结果,每次扫描上一轮,统计一个字符出现的次数,然后把这个次数和字符加入到这一轮的字符串中就可以了。
class Solution {
public:
string countAndSay(int n) {
if(n == 0) return "";
string tpres, res = "1";
for(int i=1;i<n;i++){
int j=0;
tpres = "";
while(j<res.length()){
int tpc = 1;
while(j+tpc<res.length()&&res[j] == res[j+tpc])
tpc++;
tpres += (tpc+'0');
tpres += res[j];
j = j+tpc;
}
res = tpres;
}
return res;
}
};