题目:
实现 strStr() 函数。
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。
思路:
1 暴力匹配
2 KMP 算法
(一)暴力匹配代码
1 for - for
2 for - while
(二)KMP算法
核心字段:
模式串,不匹配,(主串,模式串)公共前后缀
最长公共前后缀+1位(下标从一开始) 与 主串当前位进行比较
如下图:
最长公共前后缀为ABA
最长公共前后缀需要小于指针前的匹配串
今天必须搞定KMP算法