分別為兩個字符串的長度。
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語言實現,希望能對讀者有所幫助。