java面试题数串

来源:互联网 发布:nginx图片不能访问 编辑:程序博客网 时间:2024/06/05 12:41

题目描述

设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。

输入描述:

有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。

输出描述:

每组数据输出一个表示最大的整数。
示例1

输入

212 12347 13 4 246

输出

123127424613

代码:

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Scanner;public class Main {   public static void main(String[] args){   Scanner scanner=new Scanner(System.in);   String nextLine= scanner.nextLine();   String nextLine2 = scanner.nextLine();   Scanner scanner2 = new Scanner(nextLine2);   ArrayList list =new ArrayList();       while(scanner2.hasNext()){       list.add(Integer.parseInt(scanner2.next()));       }     Collections.sort(list,new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {String valueOf = String.valueOf(o1);String valueOf2 = String.valueOf(o2);return (valueOf2+valueOf).compareTo(valueOf+valueOf2);}   });   StringBuffer sBuffer=new StringBuffer();   for (Object object : list) {sBuffer.append(object);}   System.out.println(sBuffer.toString());   }}