java面试题数串

移动开发 waitig 498℃ 百度已收录 0评论

题目描述

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

输入描述:

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



输出描述:

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

示例1

输入

2
12 123
4
7 13 4 246

输出

12312
7424613

代码:

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>() {
		@Override
		public 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());
   }
}


本文由【waitig】发表在等英博客
本文固定链接:java面试题数串
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)