我这个程序居然不能输出,请大佬帮帮我看。
2023-11-30 19:34:36
发布于:北京
55阅读
0回复
0点赞
大佬,我这个程序没有语法错误,可就是输出不了,帮我检查一下,谢谢。
#include<bits/stdc++.h>
using namespace std;
string s;
int n;
int main() {
map<char,int> map;
cin>>s>>n;
while(n--) {
for(int j=0; j<s.length(); j++) {
map[s[j]]=0;
}
for(int j=0; j<s.length(); j++) {
map[s[j]]++;
}
for(int j=0; j<s.length(); j++) {
if(map[s[j]]>=1) {
s+=map[s[j]];
}
}
string c=s;
s+=c;
}
cout<<s;
return 0;
}
谢谢,谢谢!
全部评论 2
#include<bits/stdc++.h>
using namespace std;int main()
{
string s,t="";
cin >> s;
int n,cnt=1;
cin >> n;
for (int i=0;i<n;i++)
{
for (int j=1;j<s.size();j++)
{
if (s[j]!=s[j-1])
{
t+=to_string(cnt)+s[j-1];
cnt=1;
}
else
cnt++;
}
t+=to_string(cnt)+s[s.size()-1];
cnt=1;
s=t;
t="";
}
cout << s;
return 0;
}自己看
2024-08-21 来自 广东
0额,改了,发现逻辑有点问题,我也不知道你AC了没,我把我改了的部分给你吧,但不能用map遍历整个串,大小会叠加,我也没法改,见谅
#include<bits/stdc++.h> using namespace std; string s; int n; map<char, int> mp;//改外面多一点大小 int main() { cin >> s >> n; while (n--) { string c; mp.clear(); for (int j = 0; j < s.length(); j++) { mp[s[j]]++; } char tmp=0;//防重 for (int j = 0; j < s.length(); j++) { if (/*mp[s[j]] >= 1&&这里不用判的*/s[j]!=tmp) { tmp=s[j]; c+=char(mp[s[j]]+'0');//记得加的是一个字符,不是数字 c+=s[j]; } }//这里有点大改,你可以理解下 s=c; cout << s << endl; } cout << s; return 0; }
2024-07-06 来自 浙江
0谢谢你(Thank you very much)
2024-07-07 来自 北京
0
有帮助,赞一个