【LeetCode练习】[简单]14. 最长公共前缀

【LeetCode练习】[简单]14. 最长公共前缀

14. 最长公共前缀

题目来源
算法思想:字符串

题目:
在这里插入图片描述

java代码

class Solution {
    
    
    public String longestCommonPrefix(String[] strs) {
    
    
        String pre = "";//前缀
        if(strs.length == 0){
    
    //如果长度是0直接返回空字符串
            return "";
        }
        if (strs.length == 1){
    
    //长度是1,直接返回字符串
            return strs[0];
        }
        pre = help(strs[0],strs[1]);//寻找前两个字符串的最长公共子串
        if(pre == null){
    
    //如果前缀是空串,表示没有字符串,直接返回""
            return "";
        }
        for (int i = 2; i < strs.length; i++) {
    
    //逐次比较最长前缀
            pre = help(pre,strs[i]);
            if(pre == null){
    
    
                return "";
            }
        }
        return pre;
    }
    private String help(String s1,String s2){
    
    //比较两个字符串的前缀
        int len = Math.min(s1.length(),s2.length());//获取两个字符串的最小长度
        for (int i = len; i > 0; i--) {
    
    //从大到小开始尝试前缀的长度
            String t = s1.substring(0,i);
            if (t.equals(s2.substring(0,i))){
    
    //如果相同,则t为最大前缀
                return t;
            }
        }
        return null;//没有前缀,返回空
    }
}

猜你喜欢

转载自blog.csdn.net/qq_39457586/article/details/109478155
今日推荐