数串 -- JAVA 算法学习

来源:互联网 发布:电台节目录制软件 编辑:程序博客网 时间:2024/06/10 00:35

题目描述

设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class ShuChuan {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
int n = Integer.parseInt(scanner.nextLine().trim());
ArrayList arrList = new ArrayList();
for(int i=0;i<n;i++){
arrList.add(Integer.parseInt(scanner.nextLine().trim()));
}
Collections.sort(arrList,new Comparator<Integer>() {


@Override
public int compare(Integer o1, Integer o2) {
String a = String.valueOf(o1);
String b = String.valueOf(o2);
return (b+a).compareTo(a+b);
}
});
StringBuffer sb = new StringBuffer();
for(int i=0;i<arrList.size();i++){
sb.append(arrList.get(i));
}
System.out.println(sb.toString());
}
}
}