HDU 1106 정렬

2993 단어 HDU
정렬
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27961 Accepted Submission(s): 7710
Problem Description
한 줄 의 숫자 를 입력 하 십시오.만약 에 우리 가 이 줄 의'5'를 모두 빈 칸 으로 본다 면 한 줄 을 빈 칸 으로 나 누 는 몇 개의 비 마이너스 정수(일부 정 수 는'0'으로 시작 할 수 있 습 니 다.이 머리의'0'은 무시 되 어야 합 니 다.이 정수 가 몇 개의'0'으로 구성 되 어 있 지 않 으 면 이 정 수 는 0 입 니 다)를 얻 을 수 있 습 니 다.
당신 의 임 무 는 이 분 단 된 정수 에 대해 작은 것 부터 큰 것 까지 순서대로 출력 하 는 것 입 니 다.
 
 
Input
여러 그룹의 테스트 용례 를 포함 하고 각 그룹의 입력 데 이 터 는 한 줄 의 숫자(숫자 사이 에 빈 칸 이 없 음)만 있 으 며 이 줄 의 길 이 는 1000 보다 크 지 않 습 니 다.
입력 데이터 보증:분 할 된 비 마이너스 정 수 는 100000000 보다 크 지 않 습 니 다.입력 데 이 터 는 모두'5'로 구 성 될 수 없습니다.
 
 
Output
모든 테스트 용례 에 대해 출력 분할 이 얻 은 정수 정렬 결 과 는 인접 한 두 정수 사이 에 하나의 빈 칸 으로 나 뉘 어 각 그룹의 출력 이 한 줄 을 차지한다.
 
 
Sample Input
0051231232050775
 
 
Sample Output
0 77 12312320
 
 
방법 1
import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(new BufferedInputStream(System.in));
		while(sc.hasNext()){
			ArrayList<Integer> ay=new ArrayList<Integer>();
			String s=sc.next();
			String str[]=s.split("5");
			for(String s1:str){
				if(!s1.equals("")){
					ay.add(Integer.parseInt(s1));
				}
			}
			Collections.sort(ay);
			for(int i=0;i<ay.size()-1;i++)
				System.out.print(ay.get(i)+" ");
				System.out.println(ay.get(ay.size()-1));
		}
	}

}

 
 
방법 2
 
import java.io.*;
import java.math.BigInteger;
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));
		PrintWriter pw = new PrintWriter(new BufferedOutputStream(System.out),true);
		while (sc.hasNext()) {
			String s = sc.next();
			sc.nextLine();
			if (s.charAt(0) == '-')
				s = s.substring(1);
			
			String str[] = s.split("[5]");
			BigInteger big[] = new BigInteger[str.length];
			
			int k = 0;
			for (int i = 0; i < str.length; i++) {
				if (!str[i].equals("")) {
					big[k] = BigInteger.valueOf(Integer.parseInt(str[i]));
					k++;
				}
			}
			
			for (int i = 0; i < k; i++) {
				for (int j = i + 1; j < k; j++) {
					if (big[i].compareTo(big[j]) == 1) {
						BigInteger t = big[i];
						big[i] = big[j];
						big[j] = t;

					}
				}
			}
			for (int i = 0; i < k - 1; i++)
				System.out.print(big[i] + " ");
			System.out.println(big[k - 1]);
		}
	}

}

 

좋은 웹페이지 즐겨찾기