问题描述
给定几 个正整数 a1,a2....,an,你可以将它们任意排序,
现要将这 几 个数字连接成一排,即令相邻数字收尾相接,组成一个数。
问,这个数最大可以是多少。
输入格式
第一行输入个正整数 n(l < n< 20)。
第二行输入几 个正整数 a1,a2,...,an(1 ≤ ai ≤ 105)
输出格式
输出一个整数,表示答案。
样例输入
13 312 343
样例输出
34331213
运行限制
。最大运行时间:1S
。最大运行内存:256M
解答
import java.util.Scanner;
import java.util.Arrays;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n =scan.nextInt();//转换为整型
scan.nextLine();//接受回车键,将被next()去掉的Enter等结束符过滤掉
String[] a=new String[n];
for(int i=0;i<n;i++){
a[i]=scan.next();//Scanner输入字符串
}
//排序,🤔
Arrays.sort(a,(x,y)->{
return (x+y).compareTo(y+x);
});
for(int i=n-1;i>=0;i--){
System.out.print(a[i]);
}
scan.close();
}
}
学习
java中Scanner类nextLine()和next()的使用方法和注意事项
Java中Arrays.sort()的三种常用用法(自定义排序规则)
Java compareTo() 方法
Java String 类