Naive string matching:
Pseudo code:
Java code:
/**
* Created with IntelliJ IDEA.
* User: 1O1O
* Date: 2015-03-31
* Time: 15:40 PM
* :)~
* NAIVE-STRING-MATCH:STRING-MATCH
*/
public class Main {
public static void NAIVE_STRING_MATCHER(String Text, String Pattern){
int n = Text.length();
int m = Pattern.length();
char[] textToChar = Text.toCharArray();
char[] patternToChar = Pattern.toCharArray();
for(int s=0; s<=n-m; s++){
int count = 0;
for(int i=0; i<m; i++){
if(patternToChar[i] == textToChar[s+i])
count++;
else
break;
}
if(count == m)
System.out.println("Pattern occurs with shift: "+(s+1));
}
}
public static void main(String[] args) {
String Text = "bacbababaabcbabababacababbababacabbc";
String Pattern = "ababaca";
NAIVE_STRING_MATCHER(Text, Pattern);
}
}
Output:
Pattern occurs with shift: 16
Pattern occurs with shift: 27
Reference:
From: 《INTRODUCTION TO ALGORITHMS》THIRD EDITION.