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算法--通俗易通的主要内容,如果未能解决你的问题,请参考以下文章