hihoCoder week3 KMP算法
题目链接
https://hihocoder.com/contest/hiho3/problems
kmp算法
#include <bits/stdc++.h> using namespace std;const int N = 1e6 + 10; char s[N], t[N]; int nxt[N]; // ababaca void getNext(int len) {nxt[0] = -1;int k = -1;for(int i=1; i<len; i++) {while(k!=-1 && t[i]!=t[k+1])k = nxt[k];if(t[k+1] == t[i])k++;nxt[i] = k;}/*for(int i=0; i<len; i++){cout << nxt[i]<<" "; }*/ } void kmp() {int lt = strlen(t), ls = strlen(s);// nxt[i] 表示的是 i位可以退回的位置 getNext(lt);int num = 0;int k = -1;for(int i=0; i<ls; i++) {while(k!=-1 && t[k+1] != s[i])k = nxt[k];if(t[k+1] == s[i])k++;if(k == lt-1) {num++;k = nxt[k];}}printf("%d\n",num); }int main() {// freopen("in.txt", "r", stdin);int T; scanf("%d", &T);while(T--) {scanf("%s %s", t, s);kmp();}return 0; }
转载于:https://www.cnblogs.com/Draymonder/p/9917048.html
hihoCoder week3 KMP算法相关推荐
- hihocoder #1015 : KMP算法
hihocoder.com 上的KMP算法题,搞了半天在VS2012是能通过的,提交上去就是有问题,反复改终于通过了,记录在此,以下是测试通过代码. 输入 第一行一个整数N,表示测试数据组数. 接下来 ...
- hihocoder 1015 : KMP算法(kmp)
传送门 Description 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一只河蟹,于是河蟹就向小H ...
- hiho一下 第三周---KMP算法
KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上 ...
- BF算法优化-------KMP算法
百度百科:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特-莫里斯-普拉特操作(简称KMP算法).KMP算法的核心是利用 ...
- 数据结构与算法(5)字符串(BF算法、KMP算法及KMP算法优化)
目录 一.BF算法(暴力算法) 二.KMP算法 三.KMP算法优化 一.BF算法(暴力算法) 一个一个往后匹配,匹配失败继续从母串下一个和头(子串的头)往后继续匹配. 虽然简单,但是需要较多的时间复杂 ...
- hiho 1015 KMP算法 CF 625 B. War of the Corporations
#1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...
- HDU 1711 Number Sequence(KMP算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/ ...
- 算法(2)KMP算法
1.0 问题描述 实现KMP算法查找字符串. 2.0 问题分析 "KMP算法"是对字符串查找"简单算法"的优化. 字符串查找"简单算法"是源 ...
- KMP算法求回溯数组的步骤
KMP算法到底是什么原理就不说了,各种资料上讲的明明白白,下面我就如何用代码来实现做一下说明和记录. KMP的核心思想就是,主串不回溯,只模式串回溯.而模式串匹配到第几位时失配,要回溯多少,由模式串本 ...
最新文章
- 【ACM】杭电OJ 1181
- java 函数内部类_java 内部类详解 转
- golang for循环 使用多个变量
- 大致了解写java聊天器所需要的技术
- 数字图像处理技术详解程序_安装地暖施工程序有哪些 安装地暖技术要求是什么【详解】...
- octave绘制图片Figure后无法关闭
- 404页面自动跳转javascript
- linux socket epoll
- Ubuntu 12.04下NFS安装配置图解
- 组策略下发URL地址时的问题
- 【OpenCV 例程200篇】201. 图像的颜色空间转换
- 清理C盘——这个操作让你的C盘多出20G空间
- 一周信创舆情观察(1.10~1.16)
- 小米手机 Toast显示带应用名称问题解决方法
- 萨达撒 这篇 Java 基础,我吹不动了
- 一个故事轻松记忆常见252个英语字根(31~80)
- osm 搭建离线地图_开源地图OSM
- gvim 缩写/简写 方法, 缩写 gvim的方法
- 浓浓新华情 温暖大家庭
- 京东首页html+css1.0