美文网首页
14. 最长公共前缀

14. 最长公共前缀

作者: mayuee | 来源:发表于2021-07-08 23:14 被阅读0次

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

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

    示例 1:

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

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

    提示:

    0 <= strs.length <= 200
    0 <= strs[i].length <= 200
    strs[i] 仅由小写英文字母组成

    思路

    当字符串数组长度为 0 时则公共前缀为空,直接返回
    令最长公共前缀 res 的值为第一个字符串,进行初始化
    遍历后面的字符串,依次将其与 res 进行比较,两两找出公共前缀,最终结果即为最长公共前缀
    如果查找过程中出现了 res 长度为0(空串)的情况,则不存在公共前缀,直接返回
    时间复杂度:O(s),s 为所有字符串的长度之和
    代码

    class Solution {
        public String longestCommonPrefix(String[] strs) {
            if(strs.length == 0) return "";
    
            //取第一个字符串初始化为参考
            String res = strs[0];
    
            //从第二个开始遍历
            for(int i = 1; i < strs.length; i++){
                int j = 0;
                String stri = strs[i];
                while(j < res.length() && j < stri.length()){
                    //逐个字符对比
                    if(res.charAt(j) != stri.charAt(j)){
                        break;
                    }
                    j++;
                }
    
                res = res.substring(0, j);
                
                  //如果res长度为0,空串,没有公共前缀,直接返回
                 if(res.length() == 0){
                    return res;
                }
            }
    
            return res;
        }
    }
    

    相关文章

      网友评论

          本文标题:14. 最长公共前缀

          本文链接:https://www.haomeiwen.com/subject/rfdxpltx.html