对N个长度最长可达到1000的数进行排序。
输入描述:
输入第一行为一个整数N,(1<=N<=100)。
接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
每个数都是一个正数,并且保证不包含前缀零。
输出描述:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
链接:https://www.nowcoder.com/questionTerminal/b744af632ac4499aa485d7bb048bb0aa
来源:牛客网
先比较长度,长度相等比较大小
贴上答案:
import java.util.Scanner;
public class bigNumSort {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
String[] strings=new String[n];
for(int i=0;i<n;i++){
strings[i]=sc.next();
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(strings[i].length()>strings[j].length()){
String t=strings[i];
strings[i]=strings[j];
strings[j]=t;
}else if(strings[i].length()==strings[j].length()){
if(strings[i].compareTo(strings[j])>0){
String t=strings[i];
strings[i]=strings[j];
strings[j]=t;
}
}
}
}
for(int i=0;i<n;i++){
System.out.println(strings[i]);
}
}
}
}