杭电HDU 1004 Let the Balloon Rise AC代码 简单题

来源:互联网 发布:模型制作 软件 编辑:程序博客网 时间:2024/06/05 02:30

题目很简单,大致意思是有多组测试数据,每组测试数据里找出出现次数最多的字符串,输入0结束。这个题没什么坑点,而且题目说了是唯一解。

用了结构体,algorithm里的sort函数就解决了,贴 C++的AC代码如下:

(PS:渣渣的第二贴,有改正或意见欢迎指出!)

#include<iostream>#include<cstring>#include<algorithm>using namespace std;struct ballons{public:    char color[20];    int time = 1;//出现的次数};bool cmp(ballons a, ballons b){    return a.time > b.time; // >= 是错的}int main(){    int T;    while (~scanf("%d", &T)&&T)    {        int i, j;        int num=0;             //不同颜色的气球个数        bool flag = false;     //flag:判断该颜色是否出现过        ballons b[1001];        for (i = 0; i < T; i++)        {            char save[20];            scanf("%s", save);            for (j = 0; j < num; j++)            {                if (strcmp(b[j].color, save) == 0) //之前出现过                {                    b[j].time++; //次数+1                    flag = true;                }            }            if (flag == false)//之间没有出现过 储存到结构体数组中                 strcpy(b[num++].color, save);            else flag = false;//这儿之前忘了 不要再粗心啦        }        sort(b, b + num, cmp);        printf("%s\n", b[0].color);    }    return 0;}