字符串匹配:KMP + AC 自动机 Java 模板.docxVIP

  • 0
  • 0
  • 约4.51千字
  • 约 7页
  • 2026-04-29 发布于河北
  • 举报

字符串匹配:KMP + AC 自动机 Java 模板.docx

字符串匹配:KMP+AC自动机Java模板

一、KMP算法模板

核心功能

在主串s中查找模式串p第一次出现的起始下标,找不到返回-1。

java

运行

publicclassKMP{

/**

*构造next数组:next[i]=模式串[0..i]的最长相等前缀=后缀的长度

*/

privateint[]getNext(char[]p){

intn=p.length;

int[]next=newint[n];

//j:最长相等前后缀的长度

for(inti=1,j=0;in;i++){

//不匹配则回退

while(j0p[i]!=p[j])j=next[j-1];

if(p[i]==p[j])j++;

next[i]=j;

}

returnnext;

}

/**

*KMP匹配:返回模式串p在主串s中第一次出现的下标,-1表示未匹配

*/

publicintkmpSear

文档评论(0)

1亿VIP精品文档

相关文档