Esempio n. 1
0
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;
}
Esempio n. 2
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;
}
Esempio n. 3
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;
}