贪心
给定一个字符串组成的数组strs,把所有的字符串拼接起来,返回所有的拼接结果中,字典序最小的结果
字典序:
字符串长度相同时,当做26位的数,直接比较大小abc < acd
字符串长度不相同时,在后面补上0,变成相同的再比较 abc < bc
一种贪心策略,字典序从小到大排列,拼接成的字符串的字典序最小
public class Solution{
public static void main(String[] args) {
}
//字典序排列
public static class Mycomparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
//x.compareTo(y) 比较字典序,如果x位于y之前,返回一个负数,如果x位于y之后,返回一个正数,相等返回0
return (o1 + o2).compareTo(o2 + o1);
}
}
public static String lowerString(String[] strs){
if (strs == null || strs.length == 0) {
return "";
}
//数组中的字符串按照字典序从小到大排列
Arrays.sort(strs, new Mycomparator());
String res = "";
for (int i = 0; i < strs.length; i++) {
res = res + strs[i];
}
return res;
}
}