博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法模板——KMP字符串匹配
阅读量:6176 次
发布时间:2019-06-21

本文共 1517 字,大约阅读时间需要 5 分钟。

功能:输入一个原串,再输入N个待匹配串,在待匹配串中找出全部原串的起始位置

原理:KMP算法,其实这个东西已经包含了AC自动机的思想(fail指针/数组),只不过适用于单模板匹配,不过值得一提的是在单模板大量匹配待匹配串时,这个会有相当大的优势,AC自动机虽然好想一些,但是在这一类问题上的性价比就略低了

1 var 2    i,j,k,l,m,n:longint; 3    a:array[0..100000] of longint; 4    s1,s2:ansistring; 5 begin 6      readln(s1); 7      a[1]:=0; 8      for i:=2 to length(s1) do 9          begin10               j:=a[i-1];11               while (j>0) and (s1[j+1]<>s1[i]) do j:=a[j];12               if s1[j+1]=s1[i] then a[i]:=j+1 else a[i]:=0;13          end;14      readln(n);15      for l:=1 to n do16          begin17               readln(s2);18               j:=0;19               for i:=1 to length(s2) do20                   begin21                        inc(j);22                        if s1[j]=s2[i] then23                           begin24                                if j=length(s1) then25                                    begin26                                         write(i-length(s1)+1,' ');27                                         j:=a[j];28                                    end;29                           end30                        else31                            begin32                                 j:=j-1;33                                 while (j>0) and (s1[j+1]<>s2[i]) do j:=a[j];34                                 if s1[j+1]=s2[i] then inc(j) else j:=0;35                            end;36                   end;37               writeln;38          end;39      readln;40 end.41

 

转载于:https://www.cnblogs.com/HansBug/p/4271316.html

你可能感兴趣的文章
BigMemory系列文章--3. Ehcache存储层级(tier)
查看>>
百度副总裁说,阿波罗计划就是个平台,为自动驾驶提供一个生态
查看>>
tomcat 热部署 总是building workspace
查看>>
为世界带来更多平等的机会,蚂蚁金服举办ATEC人工智能
查看>>
张文中复出,物美首次披露新零售转型内幕
查看>>
三星再次回应“S8虹膜识别被秒破”,不过说辞略显苍白无力
查看>>
量子计算将成人工智能新高地
查看>>
如何用WebIDE打开并运行CRM Fiori应用
查看>>
宁夏一中学买了51套VIVE打造VR实训教室,全球首个VR大空间多人解决方案落地
查看>>
[译]Node v5.1.0 (Stable)发布
查看>>
asp.net2.0的几个标准控件使用的小技巧
查看>>
Consistent Hashing算法
查看>>
dd-wrt下载地址
查看>>
浅入分析和Linux内核相关的文件夹/proc和/sys .
查看>>
PO BO VO DTO POJO DAO概念及其作用
查看>>
Java操作Redis
查看>>
CRM WebClient UI里的文件是如何上传到Netweaver后台的
查看>>
Office 2007显示文件夹慢
查看>>
LNMP的403问题总结
查看>>
反向代理
查看>>