数串

题目:

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

 1 package test04;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.Iterator;
 7 import java.util.Scanner;
 8 
 9 class MyComparator implements Comparator<String>{
10 
11     public int compare(String o1, String o2) {
12         String a = String.valueOf(o1);
13         String b = String.valueOf(o2);
14         if(((a+b).compareTo(b+a))>0){
15             return -1;
16         }else if(((a+b).compareTo(b+a))<0){
17             return 1;
18         }else{
19             return 0;
20         }
21     }
22 }
23 
24 class ArraySort {
25     public static void main(String[] args) {
26         Scanner scan = new Scanner(System.in);                
27         while(scan.hasNext()){
28             int n = scan.nextInt();
29             ArrayList<String> li = new ArrayList<String>();
30             for(int i=0;i<n;i++){
31                 li.add(scan.next());
32             }
33             Collections.sort(li, new MyComparator());
34             
35             Iterator<String> iter = li.iterator();
36             while(iter.hasNext()){
37                 System.out.print(iter.next());
38             }
39         }
40     }
41 }

具体原理可参考本人博客  http://www.cnblogs.com/XuGuobao/p/7358374.html

posted @ 2017-08-15 15:33  XuGuobao  阅读(203)  评论(0编辑  收藏  举报