暑期二(G)(hdu2087)
2016-07-17 11:31
246 查看
原题
剪花布条
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15250 Accepted Submission(s): 9656
Problem Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
abcde a3
aaaaaa aa
#
Sample Output
0
3
题意:计算字串个数
题解(一):利用strstr()函数 (strstr(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL)
代码:
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; char a[1010], b[1010]; int p = 0; int main() { while ( scanf("%s", a), a[0] != '#') { getchar(); scanf("%s", b); getchar(); int ans = 0; char *pa = a, *pb = b; while ( strstr( pa, pb)) { ans ++; pa = strstr( pa, pb); if ( strlen( pa) == strlen( pb)) { break; } pa += strlen( pb); } printf("%d\n", ans); } return 0; }题解(二):应用KMP
相关文章推荐
- hibernate.hbm2ddl.auto配置详解
- 命名空间
- 怎么判断focusWidget()返回的是哪类型控件
- string的用法
- 11选5心得
- jquery基本选择器的用法解析
- Linux htop工具使用详解
- POJ 1007 - DNA Sorting
- java synchronized详解
- linux系统优化
- jQuery 核心
- MySQL里host为%是什么意思
- 单源最短路径 DIJ算法(无堆优化)
- php提交表单用Ajax方法大全
- HTML基本常识
- linux shell 编程(四)
- [模版] unique函数,vector合并,数组、vector快速输出(cout)
- Session随便写的(抄书笔记)
- 通过Gearman实现MySQL到Redis的数据复制
- c++高精度运算(加、乘)