E被卡两个点求调!!!

#include<bits/stdc++.h>

using namespace std;

string s;

int n;

int a[60];

char yuan='a';

priority_queue<pair<int,char> > q;

char x[214514];

int main()

{

cin>>s;

n=s.size();

for(int i=0;i<n;i++)

{

a[s[i]-'a']++;

}

for(int i=0;i<26;i++)

{

//cout<<a[i]<<' ';

if(a[i]>n/2)

{

cout<<-1;

return 0;

}

q.push(make_pair(a[i],yuan));

yuan++;

}

//cout<<'\n';

for(int i=0;i<n;i++)

{

char op=q.top().second;

q.pop();

if(op!=s[i])

{

x[i]=op;

a[op-'a']--;

q.push(make_pair(a[op-'a'],op));

}

else

{

char gen=op;

op=q.top().second;

q.pop();

x[i]=op;

a[op-'a']--;

q.push(make_pair(a[op-'a'],op));

q.push(make_pair(a[gen-'a'],gen));

}

}

for(int i=0;i<n;i++)

cout<<x[i];

return 0;

}

全部评论
cccccbbbbbaaaaa 试一下这组样例
1 回复 分享
发布于 2024-10-20 23:27 天津

相关推荐

面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
05-11 20:45
门头沟学院 Java
有担当的灰太狼又在摸...:零帧起手查看图片
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务