杭电-1004

来源:互联网 发布:java finalize 唤醒 编辑:程序博客网 时间:2024/04/29 10:55

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004

我的思路是将颜色一个一个保存到容器中,然后排序,这样相同的就一定会在一起,然后在一个一个比较,找出数目最多的那个

#include<iostream>#include<string>#include<algorithm>#include<vector>using namespace std;int main(){    int n;    while(cin>>n&&n!=0)    {        int i,j=1;                vector<string> vec;        vec.clear();        string s;        for(i=0;i<n;i++)        {            cin>>s;            vec.push_back(s);        }        sort(vec.begin(),vec.end());        int k=0;        string str;        for(i=1;i<vec.size();i++)        {                        if(vec[i]==vec[i-1])            {                                j++;            }                else            {                if(j>k)                 {                    k=j;                    str=vec[i-1];                                                        }                j=1;            }                }        if(j>k)  //最后要再比一次,因为如果最后两个相同的话,则不会进入else中比较,所以在for循环外与此时的 k 比较,        {            k=j;            str=vec[i-1];                                        }        cout<<str<<endl;    }    return 0;}

0 0