KMP算法--通俗易通

Posted mrrightzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KMP算法--通俗易通相关的知识,希望对你有一定的参考价值。

public class KMPAlgorithm {
    public static void main(String[] args) {
        String str1 = "BBC ABCDAB ABCDABCDABDE";
        String str2 = "ABCDABD";
        int[] kmpTable = kmpTable(str2);
        System.out.println(Arrays.toString(kmpTable));
    }

    public static int[] kmpTable(String dest) {

        int next[] = new int[dest.length()];
        next[0] = 0; // 如果字符的长度为1,则部分匹配值就是0
        for (int i = 0, j = 1; j < dest.length(); j++) {            //ABCDABD

            while (i > 0 && dest.charAt(i) != dest.charAt(j)) {
                i = next[i - 1];
            }

            if (dest.charAt(i) == dest.charAt(j)) { //
                i++;
            }

            next[j] = i;
        }

        return next;
    }
}

以上是关于KMP算法--通俗易通的主要内容,如果未能解决你的问题,请参考以下文章

KMP算法的next[]数组通俗解释

2019最新设计模式(最通俗易通)

KMP算法(通俗易懂的字符串比较算法)

怎么能通俗易通的了解php中的反射和依赖注入这两个概念

通俗易懂的KMP算法详解

Android 蓝牙键值适配(最通俗易通的一篇文章)