再次比赛!看到气球飘来飘去是多么兴奋啊。但要告诉你一个秘密,评委们最喜欢猜测最流行的问题。比赛结束后,他们会数一数每种颜色的气球,找出结果。今年,他们决定把这份可爱的工作留给你。
输入
输入包含多个测试用例。
每个测试用例以一个数字N (0<N<=1000) 开始分布的气球总数接下来的N行每行包含一种颜色。气球的颜色是由多达15个小写字母组成的字符串.N=0的测试用例终止输入,并且不处理此测试用例。
输出
对于每种情况,请在一行上打印最常见的气球颜色。保证每人测试用例都有一个唯一的解决方案。
样例输入
5
green
red
blue
red
3
red
pink
orange
pink
这个题目可以有两种做法。
1.首先分析样例:
第一组测试用例一共5个颜色,其中 red出现次数最多,故输出 red第二组测试用例一共3个颜色,其中 pink出现次数最多,故输出 pink第三组测试用例就是一个0,说明输入结束.
会发现可以用结构体或map
2.上代码
1.结构体:
#include <bits/stdc++.h>
using namespace std;
struct qq
{
string ys;
int num;
};
int main()
{
qq hdqq[100];
int ys_num = 0;
bool yysb = false;
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
string in;
cin >> in;
for (int j = 0; j < ys_num; j++)
{
if (hdqq[j].ys == in)
{
hdqq[j].num++;
yysb = true;
break;
}
}
if (!yysb)
{
hdqq[ys_num].color = color_in;
balloon[ys_num].num = 1;
ys_num++;
}
yysb = false;
}
int a = 0;
for (int i = 0; i < ys_num; i++)
{
a = hdqq[i].num > hdqq[a].num ? i: a;
}
cout << hdqq[a].color;
return 0;
}
2.map:
#include <bits/stdc++.h>
using namespace std;
map<string,int>mp;
map<string,int>::iterator it;
int main()
{
string s,h;
int n,num;
while(cin>>n)
{
mp.clear();
num=0;
for(int i=1;i<=n;i++)
{
cin>>s;
mp[s]++;
}
for(it=mp.begin();it!=mp.end();it++)
{
if(it->second>num)
{
num=it->second;
h=it->first;
}
}
cout<<h<<endl;
}
return 0;
}
完美结束!
喜欢封面的私信我!点个关注。