LeetCode系列之——14. Longest Common Prefix(JavaScript)

Q:

题目链接:Longest Common Prefix
先看题目要求:
  Write a function to find the longest common prefix string amongst an array of strings.
有一个字符串数组,写一个函数找出最长的通用字符串前缀。比如输入[‘abc’,’abd’,’a’,’ac’],输出’a’。

分析
  开始在想有没有O(n)的方法,一直没想出来,上网找也没找到,所以就按照普通思路写了。首先,肯定要写个循环遍历数组中的字符串,先把第一个字符串当做目标字符串(通用前缀),然后用后面的字串和第一个比较(比较相同下标的字母),如果比较到的字符全都一样,则第一个字符串就是要找的结果;如果又不一样,则不一样的那个字母前面的子串就是结果,同理,然后再进行剩下的比较。看代码:

A:

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    if(strs === []){
        return ''
    }
    var result = strs[0]||''//默认为第一个字符串;
    var maxlength = 0;
    for(var i = 0;i < strs.length;i++){
        //校验前缀
        for(var j = 0;j < result.length;j++){
            if(result[j] !== strs[i][j]){
                result = result.slice(0,j)
                break;
            }
        }

    }
    return result
};

  时间复杂度为O(m*n),n为数组的的元素个数,m为第一个元素的length。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值