Collections.sort()排序
阿新 • • 發佈:2019-02-05
排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 58860 Accepted Submission(s): 17215
Problem Description 輸入一行數字,如果我們把這行數字中的‘5’都看成空格,那麼就得到一行用空格分割的若干非負整數(可能有些整數以‘0’開頭,這些頭部的‘0’應該被忽略掉,除非這個整數就是由若干個‘0’組成的,這時這個整數就是0)。
你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。
Input 輸入包含多組測試用例,每組輸入資料只有一行數字(數字之間沒有空格),這行數字的長度不大於1000。
輸入資料保證:分割得到的非負整數不會大於100000000;輸入資料不可能全由‘5’組成。
Output 對於每個測試用例,輸出分割得到的整數排序的結果,相鄰的兩個整數之間用一個空格分開,每組輸出佔一行。
Sample Input 0051231232050775
Sample Output 0 77 12312320
import java.util.*; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.StringTokenizer; import java.util.TreeMap; public class Main { public static void main(String[] args){ new Task().solve(); } } class Task{ InputReader in = new InputReader(System.in) ; PrintWriter out = new PrintWriter(System.out) ; void solve(){ while(in.hasNext()){ String s = in.next() ; String[] c = s.split("5") ; List<Long> list = new ArrayList<Long>() ; for(String e : c){ if(e == null || e.trim().isEmpty()){ continue ; } //out.println("*"+e+"*"); list.add(Long.valueOf(e)) ; } //out.flush(); Collections.sort(list); for(int i = 0 ; i< list.size() ; i++){ if(i != 0){ out.print(" "); } out.print(list.get(i)); } out.println(); //out.flush(); } out.flush(); } } class InputReader { public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = new StringTokenizer(""); } private void eat(String s) { tokenizer = new StringTokenizer(s); } public String nextLine() { try { return reader.readLine(); } catch (Exception e) { return null; } } public boolean hasNext() { while (!tokenizer.hasMoreTokens()) { String s = nextLine(); if (s == null) return false; eat(s); } return true; } public String next() { hasNext(); return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } public long nextLong() { return Long.parseLong(next()); } public double nextDouble() { return Double.parseDouble(next()); } public BigInteger nextBigInteger() { return new BigInteger(next()); } }