这个题解不正经
2025-08-10 12:21:46
发布于:广东
7阅读
0回复
0点赞
#include<iostream> // 头文件
#include<string> // 引入字符串库,用于字符串处理
using namespace std; // 命名空间
// 定义函数t,参数为字符串s,返回值为字符串(统计连续相同字符的个数并拼接)
string t(string s){
string r=""; // 初始化结果字符串r为空
int c=1; // 计数器c,用于记录当前字符连续出现的次数,初始为1
char d=s[0]; // d保存当前要统计的字符,初始为字符串s的第一个字符
// 从字符串的第二个字符开始遍历(索引i从1开始)
for (int i=1;i<s.length();i++){
if(s[i]==d){ // 如果当前字符与要统计的字符d相同
c++; // 计数器加1
}else{ // 如果当前字符与d不同
r+=to_string(c); // 将当前计数器的值转换为字符串,添加到结果r中
r+=d; // 将字符d添加到结果r中
d=s[i]; // 更新d为当前字符
c=1; // 重置计数器为1
}
}
// 循环结束后,处理最后一组连续的字符
r+=to_string(c); // 添加最后一组字符的计数
r+=d; // 添加最后一组的字符
return r; // 返回转换后的结果字符串
}
int main(){
string s; // 存储初始字符串
int n; // 存储转换的次数
cin>>s>>n; // 从输入读取初始字符串和转换次数
// 循环执行n次转换
for(int i=0;i<n;i++) {
s=t(s); // 调用函数t对字符串s进行转换,并将结果重新赋给s
}
cout<<s<<endl; // 输出经过n次转换后的结果字符串
return 0; // 结束
}
这里空空如也
有帮助,赞一个