KMP算法——找子串
leetcode试题:实现strStr()1.问题:有被匹配字符串S1,匹配字符串S2,现在想从S1中找到S2首次出现的位置,没有返回-1,S2空返回0。2.分析:S1长度n,S2长度m。如果一一匹配,时间复杂度O(m*n)。而KMP算法特点在于处理S2字符串,生成辅助数组,记录最小的回退长度。例如S1=“aacaacaab”,S2=“aacaab”,在匹配S1时,第一次从S1[0]匹配到了S1[5]的位置,结果c!=b,常规做法又继续从S1[1]再次逐一匹配,而S2中又继续从0下标开始。





