本题属于较简单题目,
先输入数字n,下面紧随n行数据(颜色名称),
利用map映射,将输入的map映射+1,最后遍历map映射找到最大value值,记录位置将其输出
#include <iostream>
#include<map>
using namespace std;
int main()
{
int n; string str;
while ((cin>>n)&&n)
{
map<string, int>Bullon;
for (int i = 0; i < n; i++) { //不断输入气球颜色,并用map将其value+1
cin >> str;
Bullon[str]++;
}
map<string, int>::iterator point, loc; //定义遍历映射的变量。
int iMax = 0;
for (point = Bullon.begin(); point != Bullon.end(); point++) { //从气球映射开始到最后,依次查看value值,找到最大值,并记录
if (point->second > iMax) {
iMax = point->second;
loc = point;
}
}
cout << loc->first << endl;
}
return 0;
}
输入实例:
5
green
red
blue
red
red
3
pink
orange
pink
0