Total de ajo -T1982日期排序 pasajeros (versión Java)

tema Enlace

https://vjudge.net/problem/%E8%AE%A1%E8%92%9C%E5%AE%A2-T1982

pensamiento

Un primer conjunto de los datos originales están ordenadas en aaaa / formato mm / dd, una pequeña años tales delante
y una cadena a través de cada conjunto del conjunto, cada fecha, es, convertidos en mm // dd / aaaa formato
de almacenamiento a la lista de la colección dentro de
la poligonal final de la colección de listas

código

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class Main {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		int n = _05Reader.nextInt();
		Set<String> set = new TreeSet<String>();
		for (int i = 0; i < n; i++) {
			//String对象是不可变的,所以利用+会建立一个新字符串对象,这是十分费时的,
			//而StringBuilder或StringBuffer类对象是可变的,可以添加、删除和修改字符。
			//由于StringBulider速度比StringBuffer快,所以StringBulider在OJ比赛中更常用
			
			String str = _05Reader.nextLine();
			StringBuilder sb = new StringBuilder();
			//转换成年月日的格式yyyy/mm/dd 方便排序
			String y = str.split("/")[2];
			sb.append(y);
			sb.append("/");
			String m = str.split("/")[0];
			sb.append(m);
			sb.append("/");
			String d = str.split("/")[1];
			sb.append(d);
			//排序用set
			
			set.add(sb.toString());
		}
		//遍历
		List<String> list = new ArrayList<String>();
		for (String string : set) {
			//最后再以mm/dd/yyyy方式输出
			StringBuilder sb2 = new StringBuilder();
			//转换成年月日的格式yyyy/mm/dd 方便排序
			String m = string.split("/")[1];
			sb2.append(m);
			sb2.append("/");
			String d = string.split("/")[2];
			sb2.append(d);
			sb2.append("/");
			String y = string.split("/")[0];
			sb2.append(y);
			
			//这里用一个list集合,不要再排序了,否则又回到起点
			list.add(sb2.toString());
			
		}
		for (String string2 : list) {
			System.out.println(string2);
		}
	}

}

class _05Reader {
	static BufferedReader br = new BufferedReader(new InputStreamReader(
			System.in));
	static StringTokenizer tokenizer = new StringTokenizer("");

	static String next() throws Exception {
		while (!tokenizer.hasMoreTokens()) {
			tokenizer = new StringTokenizer(br.readLine());
		}
		return tokenizer.nextToken();
	}

	static String nextLine() throws Exception {
		return br.readLine();
	}

	static int nextInt() throws Exception {
		return Integer.parseInt(next());
	}

}

explicación

Este código es un pequeño problema, este problema se puede probar el caso, pero a DO presentarse en línea, impulsada por sólo el 6 grupo de prueba (grupo de 10), no sé lo que el código de problema aparece, la primera que así sea ...

Publicado 60 artículos originales · ganado elogios 4 · Vistas 1253

Supongo que te gusta

Origin blog.csdn.net/qq_43966129/article/details/105357108
Recomendado
Clasificación