题目链接
思路
刚开始我用两个索引来处理字符串,后来借鉴其他人的思路,其实一趟下来就能解决问题,笨啊
代码一
using namespace std;
#include <iostream>
#include<string>
int main() {
int n;
string origin;
cin >> origin >> n;
while (--n) {
int i = 0, j;
string tank = "";
while (i != origin.size()) {
char start = origin[i];
int num;
j = i + 1;
while (j != origin.size()) {
if (origin[j] == start)
j++;
else break;
}
num = j - i;
tank +=((start)+to_string(num));
i = j;
}
origin.swap(tank);
}
cout << origin;
return 0;
}
代码二
using namespace std;
#include <iostream>
#include<string>
int main() {
int n;
string origin;
cin >> origin >> n;
while (--n) {
int i = 0;
string tank = "";
while (i != origin.size()) {
char start = origin[i];
int num = 0;
while (i != origin.size()) {
if (origin[i] == start) {
num++;
i++;
}
else break;
}
tank += ((start)+to_string(num));
}
origin.swap(tank);
}
cout << origin;
return 0;
}
本文探讨了如何通过借鉴他人思路,将原本使用两个索引处理字符串的问题简化为一次遍历,提高了代码效率。作者反思了初始的解决方案并分享了代码优化过程。

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



