https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120
#include <iostream>
#include <string>
using namespace std;
int main(){
string s, tmp = "";
int n;
cin >> s >> n;
tmp = s;
while(--n){
char c = s[0];
tmp = "";
int cnt = 0;
for(int i = 0; i < s.size(); i++){
if(c != s[i]){
tmp += c;
tmp += ('0'+cnt);
c = s[i];
cnt = 1;
}
else
cnt++;
}
tmp += c;
tmp += ('0'+cnt);
s = tmp;
}
cout << tmp;
return 0;
}
还是柳婼的解法巧妙
#include <iostream>
using namespace std;
int main() {
string s;
int n, j;
cin >> s >> n;
for (int cnt = 1; cnt < n; cnt++) {
string t;
for (int i = 0; i < s.length(); i = j) {
for (j = i; j < s.length() && s[j] == s[i]; j++);
t += s[i] + to_string(j - i);
}
s = t;
}
cout << s;
return 0;
}