在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