怎样修改网站标题,优化是什么意思,用mockplus做网站原型,上海企业服务云app目录 1 介绍1.1 Z函数算法2.2 KMP算法 2 训练 1 介绍
1.1 Z函数算法
Z函数算法#xff0c;也叫作扩展KMP算法。它用来求取文本串text和模式串pattern的匹配位置。
首先介绍lcp(s1,s2)函数#xff0c;它表示字符串s1和字符串s2的最大公共前缀长度。那么z[i] lcp(text, tex… 目录 1 介绍1.1 Z函数算法2.2 KMP算法 2 训练 1 介绍
1.1 Z函数算法
Z函数算法也叫作扩展KMP算法。它用来求取文本串text和模式串pattern的匹配位置。
首先介绍lcp(s1,s2)函数它表示字符串s1和字符串s2的最大公共前缀长度。那么z[i] lcp(text, text[i:])。
求取z数组的代码如下
int n text.size();
vectorint z(n, 0);
int left 0, right 0;
for (int i 1; i n; i) {if (i right) {z[i] min(z[i - left], right - i 1);}while (i z[i] n text[z[i]] text[i z[i]]) {left i;right i z[i];z[i] 1;}
}然后求取文本串text中模式串pattern的位置可以按照以下步骤
构造新串ss pattern text。计算新串s的z数组。最终答案为满足i pattern.size() z[i] pattern.size()的下标i。
2.2 KMP算法
待补充…
2 训练
831KMP字符串 3031将单词恢复初始状态所需的最短时间II 3036匹配模式数组的子数组数目II