Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
/*************************
* String versions.
*************************/
int m = pat.length();
int n = txt.length();
int j;
if (txt.charAt(i+j) != pat.charAt(j))
break;
int m = pat.length();
int n = txt.length();
int i, j;
i -= j;
j = 0;
if (j == m) return i - m; // found
/*************************
*************************/
int m = pattern.length;
int n = text.length;
int j;
if (text[i+j] != pattern[j])
break;
}
// return offset of first match or n if no match
int m = pattern.length;
int n = text.length;
int i, j;
else {
i -= j;
j = 0;
if (j == m) return i - m; // found
}}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
/* Class KnuthMorrisPratt */
public class KnuthMorrisPratt
/* Failure array */
/* Constructor */
fail(pat);
/* find match */
if (pos == -1)
else
int n = pat.length();
failure[0] = -1;
i = failure[i];
failure[j] = i + 1;
else
failure[j] = -1;
int i = 0, j = 0;
if (text.charAt(i) == pat.charAt(j))
i++;
j++;
else if (j == 0)
i++;
else
j = failure[j - 1] + 1;
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
/* Class BoyerMoore */
/* function findPattern */
if (pos == -1)
System.out.println("\nNo Match\n");
else
if (pattern.length == 0)
return 0;
if (j == 0)
return i;
return -1;
table[i] = pattern.length;
for (int i = 0; i < pattern.length - 1; ++i)
table[pattern[i]] = pattern.length - 1 - i;
return table;
/* Makes the jump table based on the scan offset which mismatch occurs. */
if (isPrefix(pattern, i + 1))
lastPrefixPosition = i + 1;
return table;
if (pattern[i] != pattern[j])
return false;
return true;
}
/* function to returns the maximum length of the substring ends at p and is a suffix */
int len = 0;
len += 1;
return len;