简单排序(sort)

1. K15773 简单排序(sort)

题目描述

给定一个字符串,请将字符串中的内容,按照字符出现次数从大到小排序,出现次数相同的字母,字典序小的排在前。请你帮忙计算并输出排序后的字符串。

输入格式

输入文件名:sort.in
输入只有一行:为一个只包含英文字母与数字的字符串,长度不超过10^5。

输出格式

输出文件名:sort.out

输出只有一行:为排序后的字符串。

输入输出样例

输入样例1:复制
happy
输出样例1:复制
ppahy
输入样例2:复制
123cccaaabbddd
输出样例2:复制
aaacccdddbb123

说明

数据范围:如题目所述。

【耗时限制】1000ms 【内存限制】256MB

 代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
string s;
LL cnt[130];
bool cmp(const char &x,const char &y){
    if(cnt[x]!=cnt[y]) return cnt[x]>cnt[y];
    return x<y;
}
int main()
{
    freopen("sort.in","r",stdin);
    freopen("sort.out","w",stdout);
    cin>>s;
    for(LL i=0;i<s.size();i++) cnt[s[i]]++;
    sort(s.begin(),s.end(),cmp);
    cout<<s;
    return 0;
}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值