1. 程式人生 > >Collections.sort()排序

Collections.sort()排序

排序

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());  
    }  
  
}