int rabin_karp_test(int argc, char **argv) { #if DEBUG { char needle[100]; char haystack[1000]; while(scanf("%s %s", needle, haystack) != -1) { int index = rabin_karp(needle, haystack); if(index >= 0) printf("Found %s in %s at %d\n", needle, haystack, index); else printf("Failed to find %s in %s\n", needle, haystack); } } #else if(argc < 3) { printf("Usage : <command> <pattern> <string>\n"); return 0; } int index = rabin_karp(argv[1], argv[2]); if(index >= 0) { //printf("Found %s in %s at %d\n", argv[1], argv[2], index); printf("Found in at %d\n", index); } else printf("Failed to find %s in %s\n", argv[1], argv[2]); #endif return 0; }
int main(int argc, char *argv[]) { string sd(D), sc(C); int la = strlen(A), lb = strlen(B), lc = strlen(C), ld = strlen(D); int ed = edist(A,la,B,lb); printf("Levenshtein distance (%s, %s): %d (should be 3)\n", A, B, ed); int ls = lcs(A,la,B,lb); printf("Longest common subsequence (%s, %s): %d (should be 4)\n", A, B, ls); strcpy(pattern, C); preffix_suffix(pattern, array); strcpy(text, D); printf("%s\n",pattern); show(array, strlen(pattern)); printf("dopasowanie na m = %d\n",kmp_search(text, pattern)); printf("rabi_karp, dopasowanie na m = %d\n", rabin_karp(sc, sd)); return 0; }
void printResults(const std::string &t, const std::string &s) { std::cout<<"Finding first occurrence of "<<s<<" in "<<t<<std::endl; std::cout<<"Match at index = "<<rabin_karp(t, s)<<std::endl; return; }