Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int [] computeLastOccurence (String pattern, String alphabet) {
- int m = pattern.length();
- int l = alphabet.length();
- int [] lambda = new int [l];
- for (int i = 0; i < l; i++)
- lambda[i] = m;
- for (int j = 0; j <= m-2; j++)
- lambda[alphabet.indexOf(pattern.charAt(j))] = m-1-j;
- return lambda;
- }
- public static void match (String text, String pattern, String alphabet) {
- int n = text.length();
- int m = pattern.length();
- int [] lambda = BMHMatcher.computeLastOccurence (pattern, alphabet);
- int s = 0;
- int j;
- while (s <= n-m) {
- j = m-1;
- while (j >= 0 && pattern.charAt(j) == text.charAt(j)) {
- j--;
- }
- if (j == -1)
- System.out.println("Pattern occurrs with shift " + s);
- s += lambda[alphabet.indexOf(text.charAt(s+m-1))];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement