public class Main {
public static void main(String[] args) {
KMP kmp = new KMP();
int result1 = kmp.strStr(“mississippi”, “issipi”);
violence v=new violence();
int result2=v.strStr(“mississippi”, “issipi”);
UseMessage um=new UseMessage();
int result3=um.strStr(“mississippi”, “issipi”);
System.out.println("");
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
}
}
class KMP {
public int strStr(String haystack, String needle) {
if (needle.equals("") || needle == null) {
return 0;
}
if (haystack.length() < needle.length()) {
return -1;
}
int[] next = new int[needle.length()];//next为部分匹配表
next[0] = 0;//当字符串的长度为0时
for (int i = 1, j = 0; i < needle.length(); i++) {//遍历needle字符串
wh