解题思路:
注意事项:
参考代码:
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
using namespace std;
int main() {
string s;
cin >> s;
int i = 0;
int j = 0;
string sum;
int n = 0;
cin >> n;
while (n--)
{
string result;
while (i < s.length())
{
j = i + 1; //每次从第i个位置的下一个位置开始搜索相同的字符
while (s[j] == s[i]) //逐个匹配,直到不匹配就结束,此时的j等于第一个不重复的字符
{
++j;
}
stringstream ss; //int型转化为string,就是把相同字符的个数转化成string
ss << (j-i); //j-i就是相同字符的个数
sum = ss.str();
result += (sum+s[i]); //把所有相同字符个数的string形式加上这个重复的字符,循环结束之后result就是该次变换的结果
i = j; //下一次寻找就从不是重复字符的第一个开始。
}
s = result; //每次结束一次变换就更新s为该次变换后的结果,然后继续下一次循环,直到n=0
i = 0;
}
cout << s;
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复