如果a+b的字典序小于b+a,就把a放在前面,否则把b放在前面。证明略。
/**
* 所有字符串组成一个字典序最小的字符串
* @param arr
* @return 字典序最小的字符串
*/
public String lowestStrign(String[] arr){
if(arr == null || arr.length == 0){
return "";
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o1+o2).compareTo(o2+o1);
}
});
String res = "";
for (String s : arr) {
res += s;
}
return res;
}
本文介绍了一种算法,该算法能够将一组字符串重新排列组合成一个字典序最小的字符串。通过定义一种特殊的比较规则,可以确保组合后的字符串字典序最小。此算法首先对字符串数组进行特殊排序,然后连接所有字符串以形成最终结果。
1725

被折叠的 条评论
为什么被折叠?



