HDOJ 1004 Java 答案

来源:互联网 发布:mac桌面文件 编辑:程序博客网 时间:2024/06/02 13:47

HDOJ 1004

Problem Description

比赛时间了!看到气球上升是多么激动。但是告诉你一个秘密,监考老师最喜欢在这个时候猜测最受欢迎的问题。

Input

输入包含多个测试用例。每个测试用例以数字N0 <N <= 1000)开始 - 分布的气球的总数。接下来的N行各包含一种颜色的气球。气球的颜色是最多15个小写字母的字符串。N = 0的测试用例会终止输入,并且不会处理此测试用例。

Output

对于每种情况,在一行上打印最常见的气球颜色。保证每个测试用例都有一个唯一的答案。

code

import java.util.*;import java.io.*;public class HDOJ1004{    public static void main(String[] args) throws Exception{        Scanner cin = new Scanner(System.in);        //控制测试用例        while(cin.hasNextInt())        {               int num  = cin.nextInt();            //输入0结束测试            if(num<=0)                break;            //输入测试数据            List<Item> items = new ArrayList<Item>();            for(int i = 0;i<num;i++){                String item = cin.next();                boolean flag = false;                for(int j = 0;j<items.size();j++){                    //当前集合中包含输入的气球                    if(items.get(j).str.equals(item)){                        items.get(j).count+=1;                        flag = true;                        break;                    }                }                //当前集合中不包含输入的气球                if(!flag){                    items.add(new Item(item,1));                }            }            //找出最多气球的气球个数            int max = items.get(0).count;            for(int i = 1;i<items.size();i++){                if(items.get(i).count>max){                    max = items.get(i).count;                }            }            //输出所有的最多的气球            for(int i = 0;i<items.size();i++){                if(items.get(i).count == max){                    System.out.println(items.get(i).str);                }            }        }    }}class Item{    public String str;    public int count;    public Item(String s,int c){        str = s;        count= c;    }}

注意

有多个相同结果需要全部输出,而且按照输入的顺序输出。

0 0
原创粉丝点击