KMP演算法 計算短字串在長字串中的第一次出現的位置
阿新 • • 發佈:2019-01-27
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);