
- #include
- using namespace std;
- const int N=110;
- string s,p;
- int n,m;
- int ne[N];
-
- void init()
- {
- ne[1]=-1; //手动把第一位写成-1,y总的写法是-1,0开头
- for(int i=2,j=0;i<=m;i++)
- {
- while(j&&p[i]!=p[j+1]) j=ne[j];
- if(p[i]==p[j+1]) j++;
- ne[i]=j;
- }
- for(int i=1;i<=m;i++)
- {
- cout<
" "; //由于最终输出的是0,1开头的,不是-1,0开头,所以整体+1 - }
-
- cout<
- }
-
- void KMP()
- {
- int f=0;
- for(int i=1,j=0;i<=n;i++)
- {
- while(j&&s[i]!=p[j+1]) j=ne[j];
- if(s[i]==p[j+1]) j++;
-
- if(j==m)
- {
- f=1;
- cout<
1< - j=ne[j];
- }
- }
-
- if(!f)
- {
- cout<<"0"<
- }
- }
-
-
- int main()
- {
- for(int i=0;i<3;i++)
- {
- memset(ne,0,sizeof ne);
- cin>>s>>p;
-
- n=s.size();
- m=p.size();
- s=" "+s;
- p=" "+p;
- init();
- KMP();
- }
-
- return 0;
- }
-
相关阅读:
C++11新特性 Chapter1
模板_整数二分
【python中级】linux系统获得计算机网卡流量
Vue 双击复制 el-table 中的信息
org.apache.commons.lang3.StringUtils工具类使用大全
Python爬虫 教程:IP池的使用
掌握电子邮件的未来:深入解析IMAP4的革命性特性与实践
halcon 车牌识别
【LowCode Talk】前端大佬姚老师、狼叔怎么看:低代码会让程序员失业?
[附源码]Python计算机毕业设计Django高校商铺管理系统论文
-
原文地址:https://blog.csdn.net/bei2002315/article/details/128009459
-
最新文章
-
【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
Halo插件:支持GitHub的图床附件策略
电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
软件更好写之后口碑会更重要
大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
Java标签跳转:一个鲜为人知但却很实用的小技巧
多智能体系统论文速读