对于数组中的所有元素,存在这多种拼接组合,如{123,23},拼接可以是12323或者23123,其中12323是最小的。代码实现求最小拼接。
import java.util.*;
public class 拼接出最小数字 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] numbers = {3,321,32};
System.out.println(PrintMinNumber(numbers));
}
public static String PrintMinNumber(int [] numbers) {
List<Integer> list = new ArrayList<Integer>();
for(int i=0; i<numbers.length; i++){
list.add(numbers[i]);
}
Collections.sort(list, new Comparator<Integer>(){
public int compare(Integer str1, Integer str2){
return (str1+""+str2).compareTo(str2+""+str1);
}
});
//System.out.println(list.size());
StringBuffer result = new StringBuffer();
for(Integer s:list){
//System.out.println(s);
result.append(s+"");
}
return result.toString();
}
}