map。。。话说map真的是弱项了。。而且学长讲课因为身体原因没有能听。。。。比较忧伤
这个题就是比较简单的map了【虽然比较简单还是谢谢丛九九了。。。】
题意就是每一个string(颜色)对应一个出现次数,输出出现次数最多的颜色。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
using namespace std;
string str;
int n;
int main()
{
map<string,int> ballon;
map<string,int> :: iterator it;//迭代器
while(scanf("%d",&n),n)//读入颜色,如果出现过这个颜色,则对应的值+1,否则加入这个颜色
{
for(int i=0;i<n;i++)
{
cin>>str;
it=ballon.find(str);
if(it!=ballon.end())
{
it->second++;
}
else
ballon.insert(pair<string,int>(str,1));
}
int maxn=0;
for(it=ballon.begin();it!=ballon.end();it++)//求最大啊
{
if(it->second>maxn)
{
str=it->first;
maxn=it->second;
}
}
cout<<str<<endl;
ballon.clear();
}
}