本文主要是介绍简单排序(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;
}
这篇关于简单排序(sort)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!