KMP算法 飘雪穿云 2023-07-15 87 阅读1分钟 假设有两个字符串S和T,在主串S中查找与模式T串相匹配的子串。暴力算法是穷举S所有的子串,判断是否与T匹配,当遇到不匹配的字符时,主串S的i值进行回退。 KMP算法的特点是i不回退,如果S[i]=T[j]时,则i++,j++,继续比较;如果S[i]≠T[j],j回退到next[j],重新开始比较。算法的关键是计算next[]数组。时间复杂度为O(n+m),n和m分别为S和T的长度,空间复杂度为O(m)。 KMP改进算法:在next[]上进行改进,