某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。

输入格式:

输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

输出格式:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

输入样例:

5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20

输出样例:

3 Tom John
 package com.hone.basical;

 import java.io.BufferedInputStream;
import java.util.Scanner; /**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1025
* @author Xia
* 就是简单的处理字符串(将字符串处理为整型)
* 思路:先获取空格地方的下标,再将字符串中的年月日部分按照subString(int Start,int End)的方式解析出来
* 有一个测试点运行超时
*/
public class basicalLevel1028Consus{
public static void main(String[] args) {
Scanner s = new Scanner(new BufferedInputStream(System.in));
int n = s.nextInt();
s.nextLine();
int valid = 0;
int min = 20140906; //定义最小年龄、最大年龄的出生年月
int max = 0;
String maxName = "";
String minName = ""; for (int i = 0; i < n; i++) {
String str = s.nextLine();
int count = 0; //count表示年月开始的下标
for (int j = 0; j < str.length(); j++) {
if (str.charAt(j) == ' ') {
count = j;
break;
}
}
//将字符串类型的年龄转化为int
int data = Integer.parseInt(str.substring(count+1, count+5)+str.substring(count+6, count+8)+
str.substring(count+9, count+11));
if (data>=18140906&&data<=20140906) {
valid++;
if (data > max) {
max = data;
minName = str.substring(0, count);
}
if (data<min) {
min = data;
maxName = str.substring(0, count);
}
}
}
if (valid == 0) {
System.out.println(0);
}else {
System.out.println(valid+" "+maxName+" "+minName);
}
}
}
												

PAT——1028. 人口普查的更多相关文章

  1. PAT 1028 人口普查(20)(STL-set+思路+测试点分析)

    1028 人口普查(20)(20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超 ...

  2. PAT 1028. 人口普查(20)

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过200岁的老人,而今天是2014年9月 ...

  3. PAT 1028 人口普查

    https://pintia.cn/problem-sets/994805260223102976/problems/994805293282607104 某城镇进行人口普查,得到了全体居民的生日.现 ...

  4. PAT (Basic Level) Practise (中文)-1028. 人口普查(20)

    PAT (Basic Level) Practise (中文)-1028. 人口普查(20)   http://www.patest.cn/contests/pat-b-practise/1028 某 ...

  5. PAT乙级 1028. 人口普查(20)

    1028. 人口普查(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 某城镇进行人口普查,得到了全体居民的 ...

  6. PAT(B) 1028 人口普查(C)字符串

    题目链接:1028 人口普查 (20 point(s)) 题目描述 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是 ...

  7. PAT-乙级-1028. 人口普查(20)

    1028. 人口普查(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 某城镇进行人口普查,得到了全体居民的 ...

  8. PATB 1028. 人口普查(20)

    1028. 人口普查(20) 注意特判合理人数为0,否则格式错误.很暴力的sort排序找出最大最小. 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Stan ...

  9. P 1028 人口普查

    转跳点:

随机推荐

  1. BaseActivity

    package com.glandroid.smssender; import android.content.DialogInterface; import android.content.pm.P ...

  2. Angular进阶教程一

    6 AngularJS进阶 6.1数据绑定原理研究 Angular用户都想知道数据绑定是怎么实现的.你可能会看到各种各样的词汇:$watch.$apply.$digest.dirty-checking ...

  3. Maximum Depth of Binary Tree 二叉树的深度

    Given a binary tree,find its maximum depth. The maximum depth is the number of nodes along the longe ...

  4. Mybatis学习第四天——一对一&&一对多

    两表关系: 1.Mybatis中一对一关系 <!-- 两表联查,通过相同属性user_id left join 表示以左边的表为主表 --> <select id="fin ...

  5. DHCP服务搭建

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  6. pmp心得

    我报名比较晚,等缴费最后期限,才缴费,下定决心,开始正式的备考. 我的工作比较忙,备考时间特比较短,从拿到书到考试只有二个月了,心理慌慌的,期间还有一门其他的考试,在5月底,实际时间只能有20来天. ...

  7. IE和DOM事件的区别

    1.事件流的区别 IE采用冒泡型事件 Netscape使用捕获型事件 DOM使用先捕获后冒泡型事件 示例: <body> <div> <button>点击这里< ...

  8. 计算机应用基础PPT flash作业

  9. Java学习---JFreeChart动态图表

    JFreeChart是Java中开源的制图组件,主要用于生成各种动态图表.在Java的图形报表技术中,JFreeChart组件提供了方便.快捷.灵活的制图方法.作为一个功能强大的图形报表组件,JFre ...

  10. 在oracle电子商务套件中输出信息

    一.用自定义用户HAND_SL登陆http://zd01.haasgz.hand-china.com:30000/ 添加可执行并发程序 执行文件名填写自己的包名称.入口函数/过程名 二.将可执行程序添 ...