KMP算法

打印 上一主题 下一主题

主题 1917|帖子 1917|积分 5751

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 立即注册

本版积分规则

忿忿的泥巴坨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表