Name - Aryan Gupta Reg. No. 199301088 Section - B: Ans.1) A. Rabin Karp String Matching Algorithm Code
Name - Aryan Gupta Reg. No. 199301088 Section - B: Ans.1) A. Rabin Karp String Matching Algorithm Code
Name - Aryan Gupta Reg. No. 199301088 Section - B: Ans.1) A. Rabin Karp String Matching Algorithm Code
GUPTA
Reg. No. 199301088
SECTION – B
Ans.1)
a. Rabin Karp String matching algorithm
CODE –
#include<stdio.h>
#include<string.h>
#define d 256
int M = strlen(pat);
int N = strlen(txt);
int i, j;
int p = 0;
int t = 0;
int h = 1;
h = (h*d)%q;
p = (d*p + pat[i])%q;
t = (d*t + txt[i])%q;
}
if ( p == t )
if (txt[i+j] != pat[j])
break;
if (j == M)
if ( i < N-M )
if (t < 0)
t = (t + q);
int main()
int q = 101;
search(pat, txt, q);
return 0;
OUTPUT –
b. KMP Matcher
CODE –
#include<iostream>
#include<string.h>
int length = 0;
pps[0] = 0;
int i = 1;
while (i < M) {
if (pat[i] == pat[length]) {
length++;
pps[i] = length;
i++;
} else {
if (length != 0)
else {
pps[i] = 0;
i++;
int N = strlen(text);
int pps[M];
prefixSuffixArray(pattern, M, pps);
int i = 0;
int j = 0;
while (i < N) {
if (pattern[j] == text[i]) {
j++;
i++;
if (j == M) {
j = pps[j - 1];
if (j != 0)
j = pps[j - 1];
else
i = i + 1;
int main() {
KMPAlgorithm(text, pattern);
return 0;
}
OUTPUT -