LeetCode 14.最长公共前缀

通过对字符串数组进行排序之后检查第一个与最后一个字符串的匹配程度,可以快速的得出答案。

Arrays.sort()对字符串数组进行排序是(数字、大写、小写)按照ACSII码值进行排序,比如:

  String []str = {"abc","bca","cab","cba","aaa","111","232","112","ABC"};

  Arrays.sort(str);
  
  for(String s : str){

      System.out.println(s);

  }

打印结果:

111
112
232
ABC
aaa
abc
bca
cab
cba

这样我们在进行排序之后,匹配程度最低的两个字符串将会被放到首尾两端,因此,只要对它们两个字符串进行匹配检测就可以知道最大公共前缀了。

public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0) return "";
        Arrays.sort(strs);
        String a = strs[0];
        String b = strs[strs.length - 1];
        int len = Math.min(a.length(), b.length());
        int i = 0;
        while (i < len) {
            if (a.charAt(i) != b.charAt(i)) return a.substring(0, i);
            i++;
        }
        return a.substring(0, i);

    }

参考资料:https://blog.csdn.net/qq5132834/article/details/8920346

                  http://www.cnblogs.com/grandyang/p/4606926.html

你可能感兴趣的:(algorithm,LeetCode)