当前位置:   article > 正文

leetcode初级算法之————字符串匹配

leetcode初级算法之————字符串匹配

问题描述:

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。


链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xnr003/
来源:力扣(LeetCode)
 

解法一:indexOf

  说明:不建议这样使用api

var strStr = function(haystack, needle) {

    return haystack.indexOf(needle)

}

解法二:三指针

  思路:p:记录父串的初始比较位,q:父串比较位,r:字串比较位。依次串比较

var strStr = function(haystack, needle) {

    let p = q = r = 0

//结束条件:父串或字串走到头

    while(q < haystack.length && r < needle.length){

//当父串和字串当前元素不相同时,初始位++,q回到初始位,r回到字串初始位

        if(haystack[q] != needle[r]){

            p++

            q = p

            r = 0

            continue

        }

//相等则比较下一项

        q++

        r++

    }

//判断是否匹配

    return r < needle.length ? -1 : p 

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50706
推荐阅读
相关标签
  

闽ICP备14008679号