KMP算法简介
KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。时间复杂度O(m+n)。
KMP算法通过确定有限状态自动机DFA实现。
实现过程
字符串ABABAC
的DFA:
通过DFA搜索字符串BCBAABACAABABACAA
:
代码实现
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include <assert.h>
#include <string.h>