分治算法w2-T15-14. 最长公共前缀-简单

2020-05-08  本文已影响0人  小院闲窗春已深

题目

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

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

示例 1:

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

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

说明:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法1:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs==null||strs.length==0) return "";
        return longest(strs,0,strs.length-1);
    }
    public String longest(String[] strs, int start, int end){
        if(start==end){
            return strs[start];
        }
        int mid=(end+start)/2;
        String leftstr=longest(strs,start,mid);
        String rightstr=longest(strs,mid+1,end);
        return judge(leftstr,rightstr);
    }
    public String judge(String leftstr,String rightstr){
        int n =  Math.min(leftstr.length(),rightstr.length());
        for(int i = 0 ; i < n; i++){
            while(leftstr.charAt(i)!=rightstr.charAt(i)){
                return leftstr.substring(0,i);
            }
        }
        return leftstr.substring(0,n);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读