字符串数组组成的最小字典序字符串

  • 问题描述

给定一个字符串数组,返回由该字符串数组组成的最小字典序字符串。

  • 解决方案(贪心策略)

对字符串数组进行排序,排序的比较器比较规则为,若s1+s2的字典序小于s2+s1的字典序,则返回1,否则返回-1。

代码如下:

import java.util.Arrays;
import java.util.Comparator;

public class MinDictOrderOfStringJoint {

    public static String minDictOrderOfStringJoint(String[] arr){
        if(arr == null || arr.length == 0)
            return "";
        Arrays.sort(arr,new StringComparator());
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < arr.length;i ++){
            sb.append(arr[i]);
        }
        return sb.toString();
    }
}

class StringComparator implements Comparator<String> {

    @Override
    public int compare(String o1, String o2) {
        return (o1 + o2).compareTo( o2 + o1);
    }
}

你可能感兴趣的:(#,贪心策略,算法题目)