文章
13
粉丝
120
获赞
4
访问
15.2k
统计次数来进行排序 z的ascii码为122
struct Node
{
char a;
int cnt;
bool operator < (Node &w){
if(cnt == w.cnt){
return a < w.a;
}
return cnt > w.cnt;
}
}node[123];
多组输入数据,每一组数据处理完之后别忘了清空
for(int i = 0;i < 123;i++)
{
node[i].cnt = 0;
}
完整代码
#include<bits/stdc++.h>
using namespace std;
struct Node
{
char a;
int cnt;
bool operator < (Node &w){
if(cnt == w.cnt){
return a < w.a;
}
return cnt > w.cnt;
}
}node[123];
int main()
{
string s;
while(cin >> s)
{
for(int i = 0;i < 123;i++)
{
node[i].a = char(i);
}
for(auto x:s)
{
node[int(x)].cnt++;
}
sort(node,node+123);
for(int i = 0;i < 123;i++)
{
while(node[i].cnt--)
{
cout << node[i].a;
}
}
cout << '\n';
for(int i = 0;i < 123;i++)
{
node[i].cnt = 0;
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发