بالامكان اساتذتي الكرام تتكرموا بتوضيح كود خوارزمية التعرف على النصوص
// Java Implementation
// Knuth - Morris - Pratt Algorithm
class JavaKMP {
public static void main (String args[]) {
JavaKMP kmp = new JavaKMP("aaabaaaabaaaaab");
System.out.println("Find (aaaaa) At Index : " + kmp.search("aaaaa") );
}
public JavaKMP () { mText = "" ; mPattern = "" ; }
public JavaKMP (String txt) { mText = txt ; mPattern = "" ; }
public JavaKMP (String txt, String pattern) { mText = txt ; mPattern = pattern ; }
public int search() { return search(mText,mPattern) ; }
public int search(String pattern) { return search(mText,pattern) ; }
public int search(String text , String pattern) {
int prefixArray[] = new int[pattern.length()];
initializeToZero(prefixArray,pattern.length());
preProcessing(pattern,prefixArray);
int i = 0 , match = 0 ;
while ( i < text.length() ) {
if ( text.charAt(i) == pattern.charAt(match) ) {
match++ ;
if ( match == pattern.length() )
return i