【PIPIOJ-1065】统计气球(水题)

举报
野猪佩奇996 发表于 2022/01/23 00:33:45 2022/01/23
【摘要】 1.题目 众所周知,在打ACM比赛的时候,队伍只要通过了一个题,志愿者们就会送过来相对应颜色的气球 (志愿者小姐姐好漂亮QAQ) 现在刚刚进行完一场ACM比赛,PIPI拿到了所有的气球颜色,但是他想知道...

1.题目

众所周知,在打ACM比赛的时候,队伍只要通过了一个题,志愿者们就会送过来相对应颜色的气球 (志愿者小姐姐好漂亮QAQ)
现在刚刚进行完一场ACM比赛,PIPI拿到了所有的气球颜色,但是他想知道哪个题通过的人最多,你能告诉PIPI通过队伍最多的题所对应的气球颜色吗?

输入
输入包含多组测试用例。
对于每一个测试样例,第一行输入一个数字n (0<n<=1000),代表气球的数目。
以下n行每一行是一个长度不超过15为字符串s,代表气球的颜色。
输入以0为结尾,对应的样例无需处理。

输出
对于每组样例,输出颜色数最多气球的颜色。输出保证唯一解~

样例输入

5
green
red
blue
red
red
3
pink
orange
pink
0

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出

red
pink

  
 
  • 1
  • 2

2.思路

水题,最近太太太懒惰了呜呜呜。
用map统计出现最多次的字符串并输出。

注意

(1)如果是输入字符串的个数是0则啥也不输出,所以在while输入的判断中要加上&&n
(2)每次输入一组数据后记得对map进行清空——map.clear(),而且map<string,int>mp的value值默认初始为0。

3.代码

#include<iostream>
#include<stdio.h>
#include<map>
#include<string>
#include<string.h>
using namespace std;
map<string,int>mp;

int main() 
{
	//freopen("路径","r",stdin);
	int n;
	while(scanf("%d",&n)&&n){
	    mp.clear();
		for(int i=0;i<n;i++){
			string str;
			cin>>str;
			mp[str]++;
		}
		map<string,int>::iterator it;//如果支持c++11则直接auto即可
		int max=-1;//最大值
		string key;
		for(it=mp.begin();it!=mp.end();it++){
			if(it->second>max){
				max=it->second;
				key=it->first;
			}
		}
	cout<<key<<endl;
	}
	//system("pause");
	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/113194496

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。