knuth pattern matching
#include <stdio.h> #include <string.h> int lps[100]; void longestPrefixSuffix(char p[]) { int i = 1, j = 0; int m = strlen(p); lps[0] = 0; while (i < m) { if (p[i] == p[j]) { lps[i] = j + 1; i++; j++; } else if (j > 0) { j = lps[j - 1]; } else { lps[i] = 0; i++; } } } int kmp(char p[], char t[]) { int n = strlen(t), m = strlen(p); longestPrefixSuffix(p); int i = 0, j = 0; while (i < n) { if (p[j] == t[i]) ...