题目:
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.
分析:
用balloon存储颜色,用count存储每个颜色出现的次数。
每输入一个新颜色,判断它是否出现过。如果出现过,将其count值加1并把flag置为1表示出现过。如果没有出现过即flag==0,则将其加入balloon中,把对应的count置为1。
最后遍历count找出其中的最大值,并用maxcolor标记最大值对应的颜色的下标,并将其输出。
代码:
#include <iostream>
#include<string.h>
using namespace std;
int main() {
int n;
char balloon[1000][16];
int count[1000];
int num;
char color[16];
int flag;
while (cin>>n) {
if (n==0)
break;
memset(count,0,1000);
num=0;
for (int i=0; i<n; i++) {
cin>>color;
flag=0;
for (int j=0; j<i; j++) {
if (!(strcmp(balloon[j], color))) {
count[j]++;
flag=1;
break;
}
}
if (!flag) {
strcpy(balloon[i],color);
count[i]=1;
num++;
}
}
int max=0,maxcolor=0;
for (int i=0; i<num; i++) {
if(max<count[i]){
max=count[i];
maxcolor=i;
}
}
cout<<balloon[maxcolor]<<endl;
}
return 0;
}