public class KMP { //获取NEXT数组的函数 public static int[] GetArrNext(String str){ int[] Next= new int[str.length()]; String TempStr; String TempStr1; String TempStr2; int Temp; for(int i=0;iNEXT数组的定义:
对于字符串P[0]-P[X],NEXT[X]的值K恰好为满足P[0]~P[K]=P[X-K]~P[X]的最大值
优化求NEXT数组的过程:
已知NEXT[X]求NEXT[X+1]
令NOW = X
若P[X+1]=P[NEXT[NOW]] //P为单个字符
则NEXT[X+1]=NEXT[NOW]+1;
若P[X+1]!=P[NEXT[NOW]]
令NOW = X-1
直到NEXT[NOW]=0
优化后
public static int[] GetArrNext2(String str){ int[] Next= new int[str.length()+1]; int i = 1,now = 0; while(i欢迎分享,转载请注明来源:内存溢出
笔记1 记录JAVA 的KMP算法
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
day07控制语句
上一篇
2022-11-16
HelloWorld
下一篇
2022-11-16
评论列表(0条)