题目:http://acm.hdu.edu.cn/showproblem.php?pid=1004
解题思路:可以将输入的单词存在map容器里面,如果相同的话就累加,再与初设值max=0相比较,找出出现次数最多的单词,输出出来
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
int n,max=0;
string str;
map<string,int>vec;
map<string,int>::iterator it;
while (cin>>n&&n!=0)
{
vec.clear();
for(int i=0;i<n;i++)
{
cin>>str;
vec[str]++;//还可以这样自加,头一次看到,不用赋初值,测试了一下,他们是1,3,5...的累加,不影响最后答案
}
for(it=vec.begin();it!=vec.end();it++)
{
if(it->second>max)
{
max=it->second;
str=it->first;
}
}
cout<<str<<endl;
}
return 0;
}