活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
#define int long long
const int N =2e5+10;
struct st{
char a;
int m=0; // 用结构体来 存储 + 排序
}p[N];
bool cmp(st x,st y){
if(x.m!=y.m){ /// 不可以用 x.a!= y.a 否则出现x.a==y.a 时会直接判a 但是事先按出现次数排的
return x.m>y.m;
}
return x.a<y.a;
}
void solve(){
string s;
cin>>s;
map<char,int>ma;
for(int i=0;i<s.size();i++){
ma[s[i]]++; // map 来存储 出现次数
}
int k=0;
for(auto x: ma){
p[k].a=x.first;
p[k].m=x.second;
k++;
}
sort(p,p+k,cmp);// 排序
for(int i=0;i<k;i++){
cout<<p[i].a; // 输出
}
}
signed main(){
int T=1;
// cin>>T;
while(T--){
solve();
}
return 0;
}
活动地址: 牛客春招刷题训练营 - 编程打卡活动