用java写,第一个代码超时
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
String youngName = "";
String youngDate = "";
String oldName = "";
String oldDate = "";
String floor = "1814/09/06";
String ceil = "2014/09/06";
// bf bf = new bf(System.in);
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int inputNum = Integer.parseInt(bf.readLine());
int validNum = 0;
String line;
String[] people;
for (int i = 0; i < inputNum; i++) {
if ((line=bf.readLine()) != null) {
people = line.split(" ");
if(people[1].compareTo(floor) > - 1 && people[1].compareTo(ceil) < 1)
{
if(youngName == "" && youngDate == "" && oldName == "" && oldDate == "")
{
youngName = oldName = people[0];
youngDate = oldDate = people[1];
}
else {
if(people[1].compareTo(youngDate) > 0)
{
youngName = people[0];
youngDate = people[1];
}
else if (people[1].compareTo(oldDate) < 0) {
oldName = people[0];
oldDate = people[1];
}
}
validNum++;
}
}
}
if(youngName == "" && youngDate == "" && oldName == "" && oldDate == "") {
System.out.println(0);
}
else {
System.out.println(validNum+" "+oldName+" "+youngName);
}
}
}
修改了一下用了StringBuilder还是超时,暂时没办了
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
StringBuilder youngName = new StringBuilder("");
StringBuilder youngDate = new StringBuilder("");;
StringBuilder oldName = new StringBuilder("");;
StringBuilder oldDate = new StringBuilder("");;
String floor = "1814/09/06";
String ceil = "2014/09/06";
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int inputNum = Integer.parseInt(bf.readLine());
int validNum = 0;
String line;
String[] people;
for (int i = 0; i < inputNum; i++) {
if ((line=bf.readLine()) != null) {
people = line.split(" ");
if(people[1].compareTo(floor) > - 1 && people[1].compareTo(ceil) < 1)
{
if(youngName.toString().equals("") && youngDate.toString().equals("")
&& oldName.toString().equals("") && oldDate.toString().equals(""))
{
youngName.append(people[0]);
youngDate.append(people[1]);
oldName.append(people[0]);
oldDate.append(people[1]);
}
else {
if(people[1].compareTo(youngDate.toString()) > 0)
{
youngName.delete(0, youngName.length());
youngName.append(people[0]);
youngDate.delete(0, youngName.length());
youngDate.append(people[1]);
}
else if (people[1].compareTo(oldDate.toString()) < 0) {
oldName.delete(0, oldName.length());
oldName.append(people[0]);
oldDate.delete(0, oldName.length());
oldDate.append(people[1]);
}
}
validNum++;
}
}
}
if(youngName.toString().equals("") && youngDate.toString().equals("")
&& oldName.toString().equals("") && oldDate.toString().equals(""))
{
System.out.println(0);
}
else {
System.out.println(validNum+" "+oldName+" "+youngName);
}
}
}