美文网首页
最长公共前缀

最长公共前缀

作者: 洛珎 | 来源:发表于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
    };
    

    相关文章

      网友评论

          本文标题:最长公共前缀

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