前端-算法题系列 (七) => 实现 strStr()

前端-算法题系列 (七) => 实现 strStr()

思路一、常规思路(不推荐)

该思路是死磕for循环的一种,时间就不敢恭维了,我写的时候就知道它是绝对不会出现在实际应用中的

var strStr = function(str, target) {
    if(!target){
        return 0
    }
    if(target.length > str.length){
        return -1
    }
    for(var i = 0; i< str.length; i++){
        let idx = i;
        if(str[i] == target[0]){
            for(let j = 0; j < target.length; j++){
                if(target[j] == str[idx]){
                    idx++
                }else{
                    break;
                }
            }
            if(idx - i == target.length){
                return i
            }else{
                continue;
            }
        }
    }
    return -1
};

思路二

var strStr = function(haystack, needle) {
    if (!needle) return 0
    let count = 0, mark = -1;
    for (let i = 0; i < haystack.length; i++) {
        if (haystack.charAt(i) === needle.charAt(count)) {
            if (haystack.substring(i, i + needle.length) === needle) {
                return i
            }
        continue;
        }   
    }
    return -1
};
上一篇:2 6 7


下一篇:leetcode 28 实现strStr()