您的位置:首页 > 编程语言 > Java开发

KMP_next数组_while详解_Java实现

2016-05-26 16:05 549 查看


public static int[] getNext(String str){

int[] next=new int[str.length()];
next[0]=0;

for(int i=1,k=0;i<str.length();i++){//单纯O(N)遍历字符串

while(k>0 && str.charAt(i)!=str.charAt(k))//next数组求解的精髓
k=next[k-1];

if(str.charAt(i)==str.charAt(k))//单纯递增
k++;

next[i]=k; //单纯赋值
}
return next;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 Java