忿忿的泥巴坨 发表于 2024-6-2 22:13:35

KMP算法

KMP算法

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

假设 m为模式串strM的长度,n为待匹配的字符串strN的长度。
时间复杂度为 \(O(m+n)\)
参考文档:
KMP时间复杂度分析
#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;char a, b;inline void kmp() { //字符串: 1 ~ lb;        nxt = 0;        for (int i = 2, j = 0; i
页: [1]
查看完整版本: KMP算法