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

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

输出

red
pink

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;
}


相关文章
|
8月前
|
Java
leetcode-452:用最少数量的箭引爆气球
leetcode-452:用最少数量的箭引爆气球
77 0
|
8月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
46 0
|
机器学习/深度学习
【刷穿 LeetCode】1109. 航班预订统计 :「差分」&「线段树」
【刷穿 LeetCode】1109. 航班预订统计 :「差分」&「线段树」
|
算法 C++
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
143 0
leetcode 452用最少数量的箭引爆气球
leetcode 452用最少数量的箭引爆气球
93 0
leetcode 452用最少数量的箭引爆气球
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
57 0
代码随想录刷题|LeetCode 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
代码随想录刷题|LeetCode 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
代码随想录刷题|LeetCode 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
|
算法 C语言
假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
(2)当n为奇数时,将前后两部分,即1…n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。:因为30位偶数,所以至少要被分一次,然后成为奇数之后,那个假币就是奇数的中位数,所以只需要2次。若输入的硬币数为30,则最少的比较次数为(2),最多的比价次数为(4)。
581 0
|
Java
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
166 0