--------------------------------------------------------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K 代码长度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------
(1).用Man类存储人的属性(姓名、生日的年月日); (2).用list存储人口信息,存储前判断该生日是否合理,判断方式就是年纪在0-200岁;
(3).对list进行升序排序;
(4).输出list大小,以及第一个和最后一个元素的信息即可;
--------------------------------------------------------------------------------------------------------------------------------------------------------
package com.biyao.algorithm.niuke.a1; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class Main_a1_018 { static class Man{ String name; int year; int month; int day; public Man(String name,int year,int month,int day){ this.name = name; this.year = year; this.month = month; this.day = day; } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int num = scan.nextInt(); List<Man> list = new ArrayList<Man>(); for (int i = 0; i < num; i++) { String name = scan.next(); String birth = scan.next(); String[] birthArr = birth.split("/"); int year = Integer.parseInt(birthArr[0]); int month = Integer.parseInt(birthArr[1]); int day = Integer.parseInt(birthArr[2]); if(isReasonableBirthday(year,month,day)){ Man m = new Man(name,year,month,day); list.add(m); } } Collections.sort(list, new Comparator<Man>(){ @Override public int compare(Man o1, Man o2) { if(o1.year > o2.year){ return 1; }else if(o1.year == o2.year){ if(o1.month > o2.month){ return 1; }else if(o1.month == o2.month){ if(o1.day > o2.day){ return 1; }else if(o1.day == o2.day){ return 0; }else{ return -1; } }else{ return -1; } }else{ return -1; } } }); System.out.println(list.size() + " " + list.get(0).name + " " + list.get(list.size()-1).name); } } public static boolean isReasonableBirthday(int year,int month,int day){ if(year < 1814 || year > 2014){ return false; }else if(year == 1814){ if(month < 9){ return false; }else if(month == 9){ if(day < 6){ return false; }else{ return true; } }else{ return true; } }else if(year == 2014){ if(month > 9){ return false; }else if(month == 9){ if(day > 6){ return false; }else{ return true; } }else{ return true; } } return true; } }