欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HDU 1004

程序员文章站 2024-03-17 08:44:10
...

题目描述:
HDU 1004

很简单,要求输出输入最多的颜色,我们可以使用一个string数组来存储输入的数据,然后进行比较即可,我自己写的比较直接,代码如下:

#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

int main()
{
    int n,s;
    int maxN=0;
    string color[1000];

    while(cin>>n){
        if(n==0)
            break;
        for(int i=0;i<n;i++){
            cin>>color[i];
        }

        int ans=0;
        int k;
        for(k=0;k<n;k++){
            string a=color[k];
            int number=0;
            for(int j=0;j<n;){
                if(color[j]==a){
                    number++;
                    j++;
                }else{
                    j++;
                }
            }
            if(number>maxN){
                maxN=number;
                ans=k;
            }
        }
        cout<<color[ans]<<endl;
    }
    return 0;
}

/*
5
green
red
blue
red
red
3
pink
orange
pink
0
*/

然后在网上看到别人用map实现的代码,更加简单和巧妙!!!代码如下:

#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
    map<string,int> ballen;
    int n;
    string str;
    while(cin>>n && n>0){
        ballen.clear();
        while(n--){
            cin>>str;
            ballen[str]++;
        }

        int max=0;
        string maxColor;
        map<string,int>::iterator iter;
        for(iter=ballen.begin();iter!=ballen.end();iter++){
            if(iter->second>max){
                max=(*iter).second;
                maxColor=(*iter).first;
            }

        }
        cout<<maxColor<<endl;
    }
}

详见Map实现