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);
    原文作者:KMP算法
    原文地址: https://blog.csdn.net/zisetiankong123/article/details/79369479
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞