对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。
给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。
测试样例:
["abc","de"],2
"abcde"
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class _3_8拼接最小字典序练习 {
public static String findSmallest(String[] strs, int n) {
Arrays.sort(strs, new MyComparator());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < strs.length; i++) {
sb.append(strs[i]);
}
return sb.toString();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String[] arr = s.split(" ");
System.out.println(findSmallest(arr, arr.length));
}
}
class MyComparator implements Comparator {
@Override
public int compare(String o1, String o2) {
return (o1 + o2).compareTo(o2 + o1); //排序规则
}
}