南阳5--Binary String Matching(Kmp)
Binary String Matching
- 描述
- Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 3, because the pattern A appeared at the posit
- 输入
- The first line consist only one integer N, indicates N cases follows. In each case, there are two lines, the first line gives the string A, length (A) <= 10, and the second line gives the string B, length (B) <= 1000. And it is guaranteed that B is always longer than A.
- 输出
- For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.
- 样例输入
-
3 11 1001110110 101 110010010010001 1010 110100010101011
- 样例输出
-
3 0 3
- 来源
- 网络
- 上传者
- naonao
kmp 裸题;
#include <cstdio> #include <cstring> #include <iostream> using namespace std; char a[15], b[1010]; int p[1010], lena, lenb, ans; void Getp() {int i = 0, j = -1;p[i] = j;while(i != lena){if(j == -1 || a[i] == a[j]){i++, j++;p[i] = j; } elsej = p[j];} } void Kmp() {Getp();int i = 0, j = 0;while(i != lenb){if(j == -1 || b[i] == a[j]) i++, j++;else j = p[j];if(j == lena)ans++; } printf("%d\n", ans); } int main() {int t;scanf("%d", &t);while(t--){ans = 0;scanf("%s%s", a, b);lena = strlen(a);lenb = strlen(b);Kmp();}return 0; }
暴力: 竟然也是 0 ms;
#include <cstdio> #include <cstring> #include <iostream> using namespace std; char a[15], b[1010]; int lena, lenb; int main() {int t;scanf("%d", &t);while(t--){int i, j, sum = 0;scanf("%s %s", a, b);int lena = strlen(a), lenb = strlen(b);for(i = 0; i <= lenb - lena; i++){if(b[i] == a[0]){for(j = 1; j < lena; j++)if(b[i+j] != a[j])break;if(j == lena)sum++;} }printf("%d\n", sum);} return 0; }
转载于:https://www.cnblogs.com/soTired/p/4749391.html
南阳5--Binary String Matching(Kmp)相关推荐
- nyoj 题目5 Binary String Matching
Binary String Matching 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose alpha ...
- Binary String Matching
Binary String Matching 描述 Given two strings A and B, whose alphabet consist only '0' and '1'. Your t ...
- NYOJ Binary String Matching的stl解法 酒馆浪人的博客
Binary String Matching 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 3 描述 Given two strings A and B, whose al ...
- Binary String Matching(C++)
题目描述: Given two strings A and B, whose alphabet consist only '0' and '1'. Your task is only to tell ...
- string matching(HDU-6629)
Problem Description String matching is a common type of problem in computer science. One string matc ...
- String Matching 字符串匹配算法——干货从头放到尾
需要的先验知识:动态规划,有限状态机,搜索算法(就是含有state,action和policy)的模型,java.上面这些不需要知道很细,大概懂这些都是啥就可以读懂本文. 写这篇技术博客的动机是因为做 ...
- KY91 String Matching
KY91 String Matching 版本一:暴力解法 "版本一:暴力解法"import sys for line in sys.stdin:line = line.strip ...
- Binary String Reconstruction CodeForces - 1352F(思维+构造)
For some binary string s (i.e. each character si is either '0' or '1'), all pairs of consecutive (ad ...
- Binary String Minimizing CodeForces - 1256D(贪心)
You are given a binary string of length n (i. e. a string consisting of n characters '0' and '1'). I ...
最新文章
- Java虚拟机规范(目录)
- SVN中trunk、branch、tag区别
- BZOJ3998:[TJOI2015]弦论——题解
- 美团推出语音应用平台 已与奔驰、小米等企业达成合作
- Oracle数据库常用sql语句
- FreeCAD-中文设置
- 为老电脑装linux系统
- Python环境安装 官网下载 / 迅雷下载
- TNS-12555报错的解决方案
- java毕业设计开题报告jsp企业电子投票系统|问卷
- ROC曲线,AUC面积
- 唯冠和苹果的官司打得热闹
- c程序语言中long,C语言long
- 【Java】检查二叉树是否平衡。
- 电影-《满城尽带黄金甲》
- html js 修改img 图片不拉伸,Javascript防止图片拉伸的自适应处理方法
- 【减肥】个人科学减肥大致原理记录
- 【新】Notion基础教程(持续更新中……)
- 新大陆C/C++开发实习生面试
- Rest架构风格详解