
YbtOJ KMP算法课堂过关 例1 子串查找【KMP】
发布日期:2021-05-07 13:10:07
浏览次数:13
分类:技术文章
本文共 642 字,大约阅读时间需要 2 分钟。
这道题是KMP模板题,具体的来讲述。
代码
#include#include #include using namespace std;int ans,next[1010010],longys,longmbs;char ys[1001010],mbs[1001010];void find_next(){ int k=0; for(int i=2; i<=longmbs; i++) { while(k>0&&mbs[k+1]!=mbs[i]) k=next[k]; if(mbs[k+1]==mbs[i]) k++; next[i]=k; }}void kmp(){ find_next(); int k=0; for(int i=1; i<=longys; i++) { while(k>0&&mbs[k+1]!=ys[i]) k=next[k]; if(mbs[k+1]==ys[i]) k++; if(k==longmbs) { ans++; k=next[k]; } }}int main(){ scanf("%s",ys+1); scanf("%s",mbs+1); longys=strlen(ys+1); longmbs=strlen(mbs+1); kmp(); cout<
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月25日 05时40分00秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2019暑假·纪中记Day1-Day3
2019-03-04
【普及模拟】交换
2019-03-04
c语言扫雷游戏,可以递归展开非雷位置,第一次不踩雷
2019-03-04
C++STL容器----List
2019-03-04
4*4矩阵键盘的FPGA驱动
2019-03-04
SPI主机的Verilog代码及验证(优化版)
2019-03-04
椭圆曲线密码系统——椭圆曲线
2019-03-04
七 socket编程
2019-03-04
Vue实现选项卡功能
2019-03-04
清除默认样式
2019-03-04
Android 联合ViewPager 与 Fragment
2019-03-04
汉诺塔 C++实现【STL stack】
2019-03-04
数据结构——链表
2019-03-04
[数据结构与算法]链表逆置与遍历
2019-03-04
CommonJs
2019-03-04
Unicode编码和Base64编码
2019-03-04
html基础
2019-03-04
ICMP网际控制报文协议
2019-03-04
[编程题]Course List for Student (25)
2019-03-04
Python【面向对象】1
2019-03-04