
题目
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印出这3个数字能排成的最小数字321323。
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public String (int[] numbers) { StringBuilder sb = new StringBuilder(); String[] str = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) str[i] = String.valueOf(numbers[i]);
Arrays.sort(str, new Comparator<String>() { public int compare(String o1, String o2) { String m = o1 + o2; String n = o2 + o1; return m.compareTo(n); } });
for (int i = 0; i < str.length; i++) sb.append(str[i]);
return sb.toString(); }
|
近期评论