Problem Description Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.
This year, they decide to leave this lovely job to you.
Input Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) – the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.
A test case with N = 0 terminates the input and this test case is not to be processed.
Output For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
Sample Input5
green
red
blue
red
red
3
pink
orange
pink
0
Sample Outputred
pink
Author WU, Jiazhi
Source ZJCPC2004
Recommend JGShining | We have carefully selected several similar problems for you: 1002 1001 1008 1005 1003
问题链接http://acm.hdu.edu.cn/showproblem.php?pid=1004
问题分析1.可以用一个数组来存储依次出现的颜色次数,第一次出现就记录下来,然后要用for来检查以前是否出现,若出现便开始定义的数组+1;
2.然后再用一个for循环来查出最大值,再用一个for循环来检查最大值出现的位置位于字符串数组的哪一个位置,输出就完事了。
AC的代码如下`#include
#include
using namespace std;
int main()
{
int a[1000], n; string s[1000];
while (cin >> n && n != 0) //n=0时结束循环
{
for (auto i = 0; i < n; i++)
{
cin >> s[i]; a[i] = 0; //分别输入颜色
for (auto k = 0; k < i; k++) //遇到相同颜色就对应第一个颜色的“a[]++”
{
if (s[i] == s[k]) { a[k]++; break; }
}
}
int max = a[0];
for (auto j = 0; j < n; j++)
{
if (a[j] > max)max = a[j];
}
for (auto j = 0; j < n; j++)
{
if (max == a[j])cout << s[j]<<endl;
}
}
}`