HDOJ 排序

Problem Description
輸入一行數字,如果我們把這行數字中的‘5’都看成空格,那麼就得到一行用空格分割的若干非負整數(可能有些整數以‘0’開頭,這些頭部的‘0’應該被忽略掉,除非這個整數就是由若干個‘0’組成的,這時這個整數就是0)。

你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。

 

Input
輸入包含多組測試用例,每組輸入數據只有一行數字(數字之間沒有空格),這行數字的長度不大於1000。  

輸入數據保證:分割得到的非負整數不會大於100000000;輸入數據不可能全由‘5’組成。
 

Output
對於每個測試用例,輸出分割得到的整數排序的結果,相鄰的兩個整數之間用一個空格分開,每組輸出佔一行。
 

Sample Input
0051231232050775
 

Sample Output
0 77 12312320
分析:比較水的題,主要注意字符串中前,中,後連續幾個5的處理,不多解釋;
AC代碼:
import java.util.Scanner;
import java.util.Vector;

public class Main {

    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            
            String str = in.next();
            String[] strArray = str.split("5");
            int len = strArray.length;
            int[] array = new int[len];
            Vector<String> vector = new Vector<String> ();
            for(int i=0; i<len; i++){
                if(!strArray[i].equals("")){
                    vector.add(strArray[i]);
                }
            }
            len = vector.size();    
            for(int i=0; i<len; i++){
                
                if(vector.get(i).charAt(0) == '0' && vector.get(i).length() > 1){
                    array[i] = Integer.parseInt(vector.get(i).trim().substring(0, vector.get(i).length()-1));
                    if(vector.get(i).charAt(1) == '0'){
                        array[i] = 0;
                    }
                }
                
                array[i] = Integer.parseInt(vector.get(i));
                
            }
            
            for(int i=1; i<len; i++){
                
                for(int j=0; j<len-i; j++){
                    
                    if(array[j] > array[j+1]){
                        
                        int temp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = temp;
                        
                    }
                    
                }
            }
            
            for(int i=0; i<len; i++){
                System.out.print(array[i]);
                if(i<len-1){
                    System.out.print(" ");
                }
            }
            System.out.println();
            
        }
        
        
    }

}



發佈了20 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章