KMP算法

打印 上一主题 下一主题

主题 803|帖子 803|积分 2409

KMP算法

KMP算法 是一个办理模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法。
重点是找到字符串的最长公共前后缀。用最长公共前后缀在匹配的同时,实现快速跳转。
KMP的时间复杂度

假设 m为模式串strM的长度,n为待匹配的字符串strN的长度。
时间复杂度为 \(O(m+n)\)
参考文档:
KMP时间复杂度分析
[code]#includeusing namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;const int mod = 1e9 + 7;const int Maxn = 1e6 + 5;int la, lb;int nxt[Maxn];char a[Maxn], b[Maxn];inline void kmp() { //字符串: 1 ~ lb;        nxt[1] = 0;        for (int i = 2, j = 0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表