博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oulipo (KMP 统计出现次数,裸题)
阅读量:4873 次
发布时间:2019-06-11

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

目录

Oulipo (KMP 统计出现次数)

题目

求模式串在待匹配串中的出现次数。

Input
第一行是一个数字T,表明测试数据组数。之后每组数据都有两行:
第一行为模式串,长度不大于10,000;
第二行为待匹配串,长度不大于1,000,000。(所有字符串只由大写字母组成)
Output
每组数据输出一行结果。
Sample Input
4
ABCD
ABCD
SOS
SOSOSOS
CDCDCDC
CDC
KMP
SOEASY
Sample Output
1
3
0
0

题解及思路

就是直接KMP然后求出现次数。

注意的地方:

  1. next 数组的范围,也就是循环结束的地方。
  2. 可能会模式串是一位的情况。
#include 
#include
#include
#include
using namespace std;char str[1000005];char pi[10005];int nex[10005];int m, n;void getNext(char *p, int *ne){ ne[0] = -1; int i = -1, j = 0; while (j < n) //注意循环的范围,之前错在 j
> T; while (T--) { scanf("%s", pi); scanf("%s", str); n = strlen(pi); m = strlen(str); getNext(pi, nex); cout << kmpSearch() << endl; }}

转载于:https://www.cnblogs.com/tttfu/p/11295468.html

你可能感兴趣的文章
VM安装OracleLinux
查看>>
如何提高PHP应用的性能
查看>>
Python-----带参数的装饰器以及补充
查看>>
用asp.net MVC3 简单实现毕业设计 (强转)
查看>>
ADB抓取日志和日志过滤
查看>>
20941输入输出系统
查看>>
使用 Flash 描述复杂的社交网络
查看>>
唐骏十年管理经验谈:管理者要学会让员工感动
查看>>
几道和「黑洞照片」那种海量数据有关的算法问题
查看>>
为什么有禁用Mac系统的Spotlight的需求:
查看>>
paip. 定时 关机 休眠 的总结
查看>>
Oracle core02_数据块
查看>>
检查用户名是否存在jsp——access
查看>>
AmazeUI 保存浏览器数据 永久性
查看>>
使用内存数据库进行单元测试
查看>>
centos7 64位系统jdbc连接oracle报错问题
查看>>
最清晰细致的教程!一步步教你打造Win7+CentOS双系统
查看>>
移动端部分安卓手机(三星,小米)竖拍上传图片预览的时候发生旋转问题
查看>>
Visual Studio 11 Beta 官方下载地址
查看>>
渲染树render tree
查看>>