美文网首页
最长公共前缀

最长公共前缀

作者: 洛珎 | 来源:发表于2021-09-02 14:24 被阅读0次

描述

给你一个长度为 nn 的字符串数组 strsstrs , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。

数据范围:
0 <= n <= 1000
0 <= len(strs[i]) <=5000
示例1
输入:["abca","abc","abca","abc","abcc"]
返回值:"abc"

思路:拿数组第一项作为正则参考值,从第二项开始遍历数组元素,每项如果不满足条件,就把正则修改成退一位,重新进行正则匹配,直到遍历完

代码实现:

    // 判断空数组情况,并直接将第一位元素作为参照物
    var re = strs[0] ? strs[0] : '';
    // 注意,这里遍历是从1开始,因为第一位被我们拿来当参照物了
    for (var i = 1; i < strs.length; i++) {
        // 注意这里的正则加了^,表示从字符开始位置开始匹配
        var regex = new RegExp('^' + re);
        // 比较其它字符看是否符合,若不符合让正则条件的字符递减
        while (!regex.test(strs[i]) && re.length) {
            // 这里控制了字符递减
            re = re.slice(0, re.length - 1);
            // 递减后重新声明正则
            regex = new RegExp('^' + re);
        };
    };
    return re;
}
module.exports = {
    longestCommonPrefix : longestCommonPrefix
};

相关文章

  • LeetCode 每日一题 [19] 最长公共前缀

    LeetCode 最长公共前缀 [简单] 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回...

  • 14. 最长公共前缀

    20180923-摘抄自14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,...

  • 5,最长公共前缀/数组与字符串

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:...

  • Swift 最长公共前缀 - LeetCode

    题目: 最长公共前缀 描述: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""...

  • leetcode探索之旅(14)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1: ...

  • Leetcode 14 最长公共前缀

    最长公共前缀 题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • LeetCodeSwift 14.Longest Common

    题目 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • [day4] [LeetCode] [title14,122]

    14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例 ...

  • 14. 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 说明...

  • leetcode算法-最长公共前缀

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 说明:所有输...

网友评论

      本文标题:最长公共前缀

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