在19年的致新杯中, a佬tql,又是ak又是first blood,按照每题first blood都能得气球的奖励,a佬各个颜色的气球得了一大堆,a佬想知道得到的哪个颜色的气球最多。
Input
输入包含多个测试用例。每个测试用例都以一个数字N开始(0 < N <= 1000)表示分布的气球的总数。接下来的N行每一行包含一种颜色。气球的颜色最多是由15个小写字母组成的字符串。
N = 0表示结束。
Output
对于每种情况,将最多颜色的气球打印在一行上。保证每个测试用例都有唯一的解决方案。
Sample Input
5
green
red
blue
red
red
3
pink
orange
pink
0
Sample Output
red
pink
#include<bits/stdc++.h> //c++万能头文件
using namespace std;
map<string,int> color; //string为索引,指向int
int main()
{
int n;
while(cin>>n&&n!=0)
{
color.clear(); //clear(),删除容器中所有元素
string m,s; //m为参与计数的颜色字符串 ,s控制输出
int max = 0;
for(int i=0;i<n;i++)
{
cin>>m;
color[m]++; //出现一次,对应颜色加一
if(color[m]>max)
{
max = color[m];//寻找最多的颜色
s = m; //替换
}
}
cout<<s<<endl; //输出
}
return 0;
} 本代码基于map()函数的基本用法,自动建立key - value的对应。key 和 value可以是任意你需要的类型。本题则是string指向int。
蒟蒻氵博,不喜勿喷。QAQ

京公网安备 11010502036488号