题目是这样的:
代码是这样的:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String in[]=new String [n];
for(int i = 0; i < n; i++){
in[i] = sc.next();
}
String out =maxnum(in,n);
System.out.println(out);
}
static String maxnum(String[] in,int n) {
for(int i=0;i<n;i++) {
for(int j=i+1;j<n;j++) {
if(swith(in[i],in[j])) {
String tmp=in[i];
in[i]=in[j];
in[j]=tmp;
}
}
}
StringBuffer sb=new StringBuffer();
for(int i=0;i<n;i++) {
sb.append(in[i]);
}
return sb.toString();
}
static boolean swith(String x,String y) {
int xlen=x.length();
int ylen=y.length();
int len=xlen>ylen?xlen:ylen;
for(int i=0;i<len;i++) {
if(x.charAt(i%xlen)<y.charAt(i%ylen))
return true;
else if(x.charAt(i%xlen)>y.charAt(i%ylen))
return false;
}
return false;
}
}
emmm,好长啊