1. 程式人生 > >JavaStudy——0089:倒置排序

JavaStudy——0089:倒置排序

總時間限制: 1000ms 記憶體限制: 32767kB

描述
將一些整數按倒置值排序後輸出. 所謂倒置,是指把整數各位倒過來構成一個新數,例如:13倒置成了31.

輸入
第一行的整數N表示後面列出的組數。每組數的第一個整數n表示後面將有n個整數。(每組資料量不超80)
輸出
將每組數按倒置值進行排序輸出.其每組數的結果佔一行.

樣例輸入

2
4 83 13 24 36
4 99 100 123 12345

樣例輸出

13 83 24 36
100 99 123 12345

Accepted程式碼

import java.util.*;
public class
Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); List<Integer> a=new ArrayList<Integer>(); List<Integer> num=new ArrayList<Integer>(); for(int i=0;i<n;i++) { int num1=
in.nextInt(); num.add(num1); int[] a1=new int[num1]; int[] a2=new int[num1]; int[] a3=new int[num1]; for(int j=0;j<num1;j++) a1[j]=in.nextInt(); for(int j=0;j<num1;j++) { if(a1[j]<0) { String q=
-a1[j]+""; String q1=new StringBuffer(q).reverse().toString(); q="-"+q1; a2[j]=Integer.parseInt(q); } else { String q=a1[j]+""; String q1=new StringBuffer(q).reverse().toString(); a2[j]=Integer.parseInt(q1); } } Arrays.sort(a2); for(int j=0;j<num1;j++) { int k; if(a1[j]<0) { String q=-a1[j]+""; String q1=new StringBuffer(q).reverse().toString(); q="-"+q1; k=Integer.parseInt(q); } else { String q=a1[j]+""; String q1=new StringBuffer(q).reverse().toString(); k=Integer.parseInt(q1); } for(int w=0;w<a2.length;w++) { if(k==a2[w]) a3[w]=a1[j]; } } for(int j=0;j<a3.length;j++) { a.add(a3[j]); } } int index=0; for(int i=0;i<n;i++) { for(int j=0;j<num.get(i);j++) { if(j==num.get(i)-1) System.out.println(a.get(index+j)); else System.out.print(a.get(index+j)+" "); } index+=num.get(i); } in.close(); } }