分别为两个字符串的长度。
extext数组中的信息,跳过一些不必要的匹配,从而提高匹配效率。
下面是KMP算法的C语言实现
```cclude
ext数组text) {t(p);ext[0] = -1;t i = 0, j = -1; - 1) {
if (j == -1 || p[i] == p[j]) {
i++;
j++;ext[i] = j;
}
else {ext[j];
}
}
// KMP算法tp(char s, char p) {t(s);t(p);t i = 0, j = 0;texttalloct);ext);) {
if (j == -1 || s[i] == p[j]) {
i++;
j++;
}
else {ext[j];
}
}ext);) { i - j;
}
else { -1;
}
tain() {
char s[] = "BCDBD";
char p[] = "BC";tp(s, p);tf", pos); // 输出2,表示p在s中的位置是2 0;
extpp函数查找p在s中的位置,并输出结果。
KMP算法是一种高效的字符串匹配算法,其核心思想是利用已经匹配过的信息,尽量减少匹配次数。本文介绍了KMP算法的C语言实现,希望能对读者有所帮助。