LeetCode_最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

class Solution {
   public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0) {
            return "";
        }
        String ret = strs[0];
        for (int i = 0; i< strs.length-1; i++) {
            ret =  compare(ret, strs[i+1]);
            if (ret.length() == 0) {
                return ret;
            }
        }
        return ret;
    }

    public String compare(String s1, String s2) {
        int min = Math.min(s1.length(), s2.length());
        if (min == 0) {
            return "";
        }
        for (int i = 0; i< min; i++) {
            if (s1.charAt(i) != s2.charAt(i)) {
                return s1.substring(0, i);
            }
        }
        return s1.length() == min ? s1 : s2;
    }

}

 

你可能感兴趣的:(leetcode)