1. 程式人生 > >KMP演算法 計算短字串在長字串中的第一次出現的位置

KMP演算法 計算短字串在長字串中的第一次出現的位置

String a = "abcd";
String b = "bcdadabcd";
String max = a.length() > b.length() ? a : b;
String min = a.length() < b.length() ? a : b;
String temp = null;
int i = 0;
int j = 0;
int index=-1;
while (i < max.length()&&j<min.length()) {
    Log.i("tag", "i:" + i);
    if (String.valueOf
(max.charAt(i)).equals(String.valueOf(min.charAt(j)))) { if (j==0){ index=i; if (max.substring(i,max.length()).length()<min.length()){ index=-1; break; } } j++; i++; } else { i = i - (j - 1); j=0; } } Log.i("tag", "index:"
+ index);