leeCode14 最长公共前缀 js

题目说明
刷题第一天的第一道简单题,由于本人是前端开发,遂采用js进行题目解答。
我的思路是,首先找到strs中长度最短的那个字符串作为查询的关键字,然后由长到短遍历该元素,使用indexOf是否为0检测该元素是否包含且位于其他元素的下表0位,若通过,则直接返回截取的字符串部分,反之则进行下一轮循环。
代码具体如下

var longestCommonPrefix = function(strs) {
	// 令最短字符串的下标为0
    let minIndex = 0
    for(let i = strs.length - 1; i > 0; i--){
    // 寻找长度最短的字符串
        minIndex = strs[i].length < strs[minIndex].length ? i : minIndex
    }
    for(let i = strs[minIndex].length; i >= 0; i--){
        let flag = true;	// 是否找到公共前缀的标识
        for(let j = 0; j < strs.length ; j++){
        	// 若仍一元素不符合条件直接进行下一轮循环
            if(strs[j].indexOf(strs[minIndex].substr(0,i))!== 0){
                flag = false;
                break;
            }

        }
        if(flag){
        	// 符合条件直接返回该字符串
            return strs[minIndex].substr(0,i)
        }
    }
    return ""
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值