7-1 气球升起来 (15 分)
程序设计竞赛时,赛场升起各色气球多么激动人心呀!志愿者送气球忙得不亦乐乎,观战的某人想知道目前哪种颜色的气球送出最多。
输入格式:
测试数据有多组,处理到文件尾。每组数据先输入一个整数n(0<n≤5000)表示分发的气球总数。接下来输入n行,每行一个表示颜色的字符串(长度不超过20且仅由小写字母构成)。
输出格式:
对于每组测试,输出出现次数最多的颜色。若出现并列的情况,则只需输出ASCII码值最小的那种颜色。
输入样例:
3
pink
red
pink
输出样例:
pink
代码:用map记录每个字符串出现的次数,注意是多实例,还有当有多个次数最多的颜色,需要输出ASCII码最小的。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n){
map<string,int> mp;
int maxn=0;
string res;
for(int i=1;i<=n;i++)
{
string s;
cin>>s;
mp[s]++;
if(mp[s]>maxn||(mp[s]==maxn&&s<res)) maxn=mp[s],res=s;
}
cout<<res<<endl;
}
}
总结
多实例测试(出现最多数模板)
一.大模板
while(n--)
{
for(int i = 1; i <= n;i++)
{
if()
{}
}
}
二标志变量
n --- 输入
maxn -----记录出现的最多次数。
res-----记录出现次数最多的字符串。
s------记录输入的字符串