题意:统计出现最多次数的单词
code1:
注意这个 需要判断 是否越界(while循环位置),
#include<bits/stdc++.h>
using namespace std;
/*
题目很简单 但是需要注意的是 最后几个相等 的时候 会出现 数组越界的问题
*/
int main()
{
string color;
int n;
while(cin >> n && n!=0){
vector<string> vec;
for(int i = 0; i < n; ++i){
cin >> color;
vec.push_back(color);
}
sort(vec.begin(),vec.end());
int i,ans = 0,len;
string pop = vec[0];
for(i = 1; i < vec.size();){
len = 1;
while(i < vec.size() && vec[i-1] == vec[i]){
++i;
++len;
//cout << vec[i] << endl;
}
if(len > ans){
ans = len;
pop = vec[i-1];
}
++i;
}
cout << pop << endl;
}
return 0;
}
code2: map
#include<bits/stdc++.h>
using namespace std;
typedef map<string,int> msi;
int main()
{
string color;
int n;
ios::sync_with_stdio(false);
cin.tie(NULL);
while(cin >> n && n != 0){
msi mp;
for(int i = 0; i < n; ++i){
cin >> color;
++mp[color];
}
msi::iterator it = mp.begin();
int ans = -1;
string pop;
for(;it != mp.end(); ++it){
if(it->second > ans){
ans = it->second;
pop = it->first;
}
}
cout << pop <<endl;
}
return 0;
}