String Matching Algorithm
String Matching Algorithm
• Introduction
• Functioning
• Example
• Exercise
• ababd
• aabaaab
• abcdabd
• Given Text T:
abacbababababaacbacaababababaabababa
bababacac.
• Given Pattern P: abababa
Compute_Prefix(P)
1- m=P.length
2- Let ∏[1..m] be an array
3- ∏[1]=0
4- k=0
5- for q=2 to m
6- while k>0 and P[k+1]!=P[q]
7- k=∏[k]
8- if P[k+1]==P[q]
9- k=k+1
10- ∏[q]=k
11- return ∏
Dr. Pavithra, Assistant Professor, SCOP 7
E, VIT
Algorithm
KMP_Matcher(T,P)
1- m=P.length
2- n=T.length
3- ∏=compute_prefix(P)
4- q=0
2- for i=1 to n
6- while q>0 and P[q+1]!=T[i]
7- q=∏[q]
8- if P[q+1]==T[i]
9- q=q+1
10- if q==m
11- print “pattern occurs with shift” i-m
12- q=∏[q]
Dr. Pavithra, Assistant Professor, SCOP 8
E, VIT
Base for Robin Karp Algorithm
Text: aaaaab
Pattern: a a b
• Text T: c c a c c a d b a
• Pattern P: d b a
• Text T: a b c c d d a e f g
• Pattern P: c d d
• T: A B D C B
• P: D C
T = 31415926535
P = 26
T=2359023141526739921
P=31415