杭电ACM 2087
来源:互联网 发布:数据库设计与开发规范 编辑:程序博客网 时间:2024/06/08 02:53
剪花布条
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 15566 Accepted Submission(s): 9861
Problem Description
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
Input
输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output
输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input
abcde a3aaaaaa aa#
Sample Output
03
解题思路:刚开始看完题目觉得好简单的,打代码的时候才发现有点坑。原来以为 i 只需要一直 i++ 接着 和 s 判断即可,后来发现 str 中间没找到 s字符串时并不能这样接着判断,而是要像我下面代码的绿色部分一样,从判断 s 字符串的上一轮的 i + 1 开始继续与 s 比较。
#include<iostream>#include<string>using namespace std;int main(){string str,s;int i,j,count,temp;bool flag;while(cin>>str && str[0] != '#'){cin>>s;count = 0;for (i = 0; i < str.length();){flag = true;temp = i;for (j = 0; j < s.length(); j++){if(str[i] != s[j]){flag = false;break;}<span style="color:#ff0000;">i++;</span>}if(flag){count++;}else {<span style="color:#009900;">i = temp + 1;</span>} }cout<<count<<endl;}return 0;}
0 0
- 杭电acm--2087
- 杭电ACM 2087
- acm杭电2087-剪花布条
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电acm 1010
- 杭电 acm 1045
- 杭电ACM-1010
- 杭电ACM 1172
- 杭电ACM 1174
- 杭电ACM 1175
- 杭电ACM 分类
- 杭电ACM分类
- 杭电acm 1000
- 杭电acm 1001
- 杭电acm 1002
- 杭电acm分类
- 杭电acm分类
- php生成艺术签名 下
- 状压DP
- POJ 3468 A Simple Problem with Integers -
- hdu 1426 Sudoku Killer(数独 dfs)
- POJ-3270 Cow Sorting
- 杭电ACM 2087
- C++延时循环的创建
- 开发日记——手机安全卫士 Day02 2016-7-21 完成导航页面和切换功能
- Java程序员们最常犯的10个错误(转载)
- LeetCode-94:Binary Tree Inorder Traversal
- HDU 1045 Fire Net dfs
- Python.Calling a JSON API
- opencv初体验
- iOS的MD5/SHA1加密算法的实现