HDU 2087 减花布条(KMP 匹配)
来源:互联网 发布:cow数据库 编辑:程序博客网 时间:2024/06/05 09:56
题目:
Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
abcde a3aaaaaa aa#
Sample Output
03
代码是从我之前写的代码复制过来的,只改了一点。点击打开链接
代码:
#include<iostream>#include<string.h>using namespace std;char listn[1005];//长串char listm[1005];//短串int next_[1005];void getnext(char *t, int m, int *next)//m是短串t的长度{int i = 1, j = 0;next[1] = 0;while (i < m){if (j == 0 || t[i] == t[j]){i++;j++;if (t[i] != t[j])next[i] = j;else next[i] = next[j];}else j = next[j];}}int main(){ios_base::sync_with_stdio(false);//减小输入输出的时间int n, m;int sum;while (1){cin >> listn;n = strlen(listn);if (n == 1 && listn[0] == '#')break;cin >> listm;m = strlen(listm);int i = 0, j = 0;sum = 0;getnext(listm, m, next_);while (i < n){if (listn[i] == listm[j]){i++;j++;if (j >= m){sum++;j = 0;}}else{if (next_[j])j = next_[j];else{i++;j = 0;}}}cout << sum << endl;}return 0;}
1 0
- HDU 2087 减花布条(KMP 匹配)
- HDU 2087 剪花布条(字符串匹配KMP)
- HDU 2087 剪花布条(KMP匹配裸题)
- hdu 2087 减花布条 kmp
- HDU 2087 剪花布条(KMP)
- HDU 2087 剪花布条(KMP)
- HDU - 2087 剪花布条 (KMP)
- HDU 2087 剪花布条(kmp)
- HDU-2087 剪花布条(kmp)
- HDU 2087 剪花布条 (kmp)
- hdu 2087 剪花布条(KMP)
- hdu 2087 剪花布条(KMP)
- HDU - 2087 剪花布条(Kmp)
- HDU - 2087 - 剪花布条(kmp)
- HDU 2087剪花布条 (kmp)
- 【HDU】2087 - 剪花布条(KMP)
- HDU:2087 剪花布条(KMP)
- 【hdu 2087】剪花布条(kmp)
- 顺序容器性能比较
- IOS开发UI基础:倒影
- Android学习-简单的猜拳游戏
- IOS开发UI基础:QQ粘性效果
- 互联网创业六大经典理论:没VC时该想想杂货店
- HDU 2087 减花布条(KMP 匹配)
- 2016夏令营(入营测试解题报告)
- 教你如何面试进入阿里巴巴!
- 浅谈线段树(Segment Tree)
- LeetCode | Symmetric Tree
- 细小算法记录(辗转相除法,筛素法)
- MTK Project rename/clone
- xshell下设置字体的格式大小等
- wdtree简介、使用