没有合适的资源?快使用搜索试试~ 我知道了~
首页kMP算法JavakMP算法JavakMP算法JavakMP算法Java
kMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法JavakMP算法Java
资源详情
资源评论
资源推荐

class KMP
{
String s; //主字符串
String p; //匹配字符串
int[] next; //匹配字符串的 next 数组
int times; //记录匹配的次数
int index; //记录查找到的位置
KMP(String s,String p) //构造函数,初始化各个成员变量
{
this.s=s;
this.p=p;
this.next=new int[p.length()];
for(int i=0;i<p.length();i++)
{
if(i==0)
{
this.next[i]=-1;
}else if(i==1)
{
this.next[i]=0;
}
else
{
this.next[i]=next(p.substring(0,i)); //对某个位置之前的字符串考察其开始
部分和结尾部分是否相同
}
}
this.times=0;
this.index=-1;
}
private int next(String p) //返回子字符串,开始部分和结尾部分相同的情况下的开
始部分的下一个位置,即 next 值
{
int length=p.length()/2;
while(length>0)
{
if(p.substring(0,length).compareTo(p.substring((p.length()-
length),p.length()))==0)


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0