概述
package com.ec.xy.app.algorithm;
import com.xiuye.sharp.X;
import com.xiuye.util.cls.XType;
import com.xiuye.util.log.XLog;
public class KMP {
private static int[] getNext(String p) {
int [] next = XType.newInstance(int[]::new,p.length());
next[0] = -1;
int i=0,j=-1;
if(i<p.length()) {
if(j == -1|| p.charAt(i)==p.charAt(j)) {
++i;
++j;
next[i] = j;
// X.lnS(i,j,next[i]);
}
else {
j = next[j];
// X.lnS(j);
}
}
XLog.logArray(next);
return next;
}
private static int match(String str,String p) {
int i=0;
int j = 0;
int []next = getNext(p);
while(i<str.length()&&j<p.length()) {
if(j==-1||str.charAt(i)==p.charAt(j)) {
i++;
j++;
}else {
j = next[j];
}
}
if(j == p.length()) {
return i-j;
}else {
return -1;
}
}
public static void main(String[] args) {
X.lnS(match("ABCAAACC", "AAACC"));
}
}
-10000
3 [ line:66 | com.ec.xy.app.algorithm.KMP | KMP.java ]
最后
以上就是单纯小松鼠为你收集整理的Java 字符串匹配算法的全部内容,希望文章能够帮你解决Java 字符串匹配算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复