JavaStudy——0089:倒置排序
阿新 • • 發佈:2018-11-15
總時間限制: 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();
}
}