KMP算法

对于长度分别为m与n的两字符串进行匹配的时间复杂度为O(m+n)的字符串匹配算法。

思想

设主串为 M,待匹配串为 N。初始位置为主串首字符。

[0]. 找到与N 匹配的最大前缀 X,若X=N,则结束并返回 X 的首字符下标;

[1]. 对 X,找出最长的相同前、后缀,设此后缀首字符下标为 x ;

[2]. 从主串下标 x 开始,重复 [0] ;

[3]. 若循环至主串末尾仍未结束,则结束并返回 无解。

图例


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容