美文网首页剑指offer
最长公共前缀

最长公共前缀

作者: solfKwolf | 来源:发表于2019-12-08 18:19 被阅读0次

二分查找

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    if(strs === null || strs.length === 0) return "";

    var minLen = Number.MAX_SAFE_INTEGER;
    for (var v of strs) {
        minLen = Math.min(minLen, v.length)
    }

    var low = 1,
        high = minLen;
    while (low <= high) {
        var middle = (low + high) >> 1;
        if(isCommonPrefix(strs, middle)) {
            low = middle + 1
        } else {
            high = middle - 1
        }
    }
    
    return strs[0].substring(0, (low + high) >> 1);
};


var isCommonPrefix = function(strs, len) {
    var str1 = strs[0].substring(0, len);
    for(let i = 0;i<strs.length;i++) 
        if (!strs[i].startsWith(str1))
            return false;
    return true;
}

相关文章

  • 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/lxgmgctx.html