KMP字符串匹配 洛古3375 kmp水题
题目大意
如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。
为了减少骗分的情况,接下来还要输出子串的前缀数组next
分析
好久没动到博客,因为中考。
但是中考结束了!!!
可以浪了,所以复习一下kmp,c++版
具体见dalao
ps:几个月没打到代码了,一起手尽不知道要干什么…
code
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<string>using namespace std;char b[200000];
char a[2000000];
int p[2000000];int main()
{scanf("%s",a);scanf("%s",b);memset(p,0,sizeof(p));int j=-1;p[0]=-1;int lenb=strlen(b)-1;int lena=strlen(a)-1;for (int i=1;i<=lenb;i++){while ((j>-1) && (b[j+1]!=b[i])) j=p[j];if (b[j+1]==b[i]) j++;p[i]=j;}j=0;for (int i=0;i<=lena;i++){while ((j>-1) && (b[j+1]!=a[i]))j=p[j];if (b[j+1]==a[i]) j++;if (j==lenb)printf("%d\n",i+1-lenb);}for (int i=0;i<=lenb;i++){printf("%d ",p[i]+1);}
}
KMP字符串匹配 洛古3375 kmp水题相关推荐
- KMP算法小总结 洛谷P3375 【模板】KMP字符串匹配
提问:这里有一个长度为n的字符串str1和长度为m的字符串str2(n > = m),问在str1中str2出现了几次? 如果使用暴力求解,一个一个比较,在n和m都极大的情况下将花费非常多的不必 ...
- 落谷 P3375 【模板】KMP字符串匹配
题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next. 输入格式: 第一行为一个字符串,即为s1 ...
- Oulipo-欧力波(KMP字符串匹配问题)
Oulipo-欧力波 HDU - 1686 The French author Georges Perec (1936–1982) once wrote a book, La disparition, ...
- Simpsons’ Hidden Talents辛普森一家的隐藏天赋(next数组和kmp字符串匹配)
辛普森一家的隐藏天赋 HDU - 2594 目录 辛普森一家的隐藏天赋 HDU - 2594 题意描述:当给定字符串s1和s2时,找到s1中最长的前缀,即s2的后缀.如果有,输出相同的字符串即字符串长 ...
- KMP算法详解P3375 【模板】KMP字符串匹配题解
KMP算法详解: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt(雾)提出的. 对于字符串匹配问题(such as 问你在abababb中有多少个 ...
- 数据结构 kmp字符串匹配_用动画解释 KMP 算法
大家好,我是一个每天在互联网都被读者催更催到爆肝,爆肾小鹿童鞋. 说实话,一些数据结构和算法我这辈子都不可能用到实际当中,但个人一直觉得能把复杂的东西讲明白是一件很牛逼的事情. 毕竟想牛逼也是很难的, ...
- 字符串匹配代码C语言,KMP算法(快速模式匹配算法)详解以及C语言实现
通过上一节的介绍,学习了普通模式匹配算法,大体思路是:模式串从主串的第一个字符开始匹配,每匹配失败,主串中记录匹配进度的指针 i 都要进行 i-j+1 的回退操作(这个过程称为"指针回溯&q ...
- 【模板】KMP字符串匹配
题目描述 给出两个字符串 s_1s1 和 s_2s2,若 s_1s1 的区间 [l, r][l,r] 子串与 s_2s2 完全相同,则称 s_2s2 在 s_1s1 中出现了,其出现位置为 ...
- 洛谷 P3375 【模板】KMP字符串匹配
我这段时间因为字符串太差而被关了起来了(昨晚打cf不会处理字符串现场找大佬模板瞎搞,差点就凉了),所以决定好好补一下字符串的知识QAQ,暂时先学习kmp算法吧~ 题目链接:https://www.lu ...
最新文章
- 提前了解客户背景很有必要
- EXP1 PC平台逆向破解
- 基于keepalived对redis做高可用配置---转载
- Merge Sort及其对一类问题的应用
- jvm内存参数配置_“步步精心”-常用JVM配置参数
- 认知:什么是真正的产品思维?
- JS定时器小应用--设置闹铃
- checkbox-复选框
- scala的静态属性和静态方法
- 计算机组成原理课后答案(唐朔飞第三版) 第三章
- qq西游服务器制作教程,QQ西游修罗版开区一键服务端+完整客户端+GM辅助工具+教程...
- 用C语言开发NES游戏(CC65) 准备工作
- 校内计算机无法报名高考,没有奖项可以报名自主招生吗?报考条件建议65问
- pandas算加权平均值_pandas和groupby:如何计算agg中的加权平均值
- C++ advanced(4)make function and SFINAE
- win11忘记当前密码怎么办
- vue 获取用户位置 高德_Vue使用高德地图
- chiplogic-网表提取-(2)二极管三极管电阻器件插入
- Servlet 03
- 笔记本英雄联盟界面服务器停止运行,关于LOL选完大区(主界面)后马上闪退的正确解决方法...