站外题(蒟蒻求助)
  • 板块灌水区
  • 楼主xy210230
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/2 12:10
  • 上次更新2024/5/2 15:33:42
查看原帖
站外题(蒟蒻求助)
1064075
xy210230楼主2024/5/2 12:10

题目描述

小梦要设计下一代的键盘,需要对字母按键重新排序,计划将出现频率最高的按键让食指来触发,而出现频率最低的按键让无名指来触发。小梦编写了一个爬虫程序,从网上爬下文章,并且自动分析其中各个字母出现的次数。

输入格式

一个没有空白字符的字符串。

输出格式 按照出现次数从高到低输出大写字母及其出现次数,注意不区分大小写,没有出现过的字母不需要输出。

样例

输入样例

123_HelloWorld_C++

输出样例

L 3 
O 2 
C 1 
D 1 
E 1 
H 1 
R 1 
W 1

我的代码

#include<bits/stdc++.h>

using namespace std;
struct hh
{
	string s;
	int j;
};
bool cmp(hh a,hh b)
{
	if(a.j==b.j)
		return a.s <b.s;
	return a.j>b.j;
}
string a;
hh b[100];
int c[100];
int main()
{
	cin>>a;
	for(int i=0;i<a.size();i++)
	{
		if(a[i]>='A'&&a[i]<='Z')
		{
			b[a[i]].s=a[i];
			b[a[i]].j=b[a[i]].j+1; 
		}
		else if(a[i]>='a'&&a[i]<='z')
		{
			b[a[i]-32].s=a[i]-32;
			b[a[i]-32].j=b[a[i]-32].j+1;
		}
	}
	sort(b,b+a.size(),cmp);
	for(int i=0;i<100;i++)
	{
		if(b[i].j==0)
		{	

			continue;
		}
		cout<<b[i].s<<" "<<b[i].j<<endl;
	}
}

各位大佬,为什么不排序?

2024/5/2 12:10
加载中...