HDU2087 剪花布条(字符串...半暴力写的?

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。
Output输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。
Sample Input

abcde a3
aaaaaa  aa
#

Sample Output

0
3

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     char a[1005],b[1005];
 6     int k,i,j,l1,l2;
 7     while(scanf("%s",a)&&a[0]!='#'){
 8         scanf("%s",b);int s=0;
 9         l1=strlen(a);l2=strlen(b);
10         if(l1<l2){
11             printf("0
");
12             memset(a,0,sizeof(a));memset(b,0,sizeof(b));
13             continue;
14         }
15         for(i=0;i<l1;i++){
16             for(j=0;i+j<l1;j++){
17                 if(b[j]!=a[i+j]){
18                     break;
19                 }
20             //    next[k]=j;
21             }
22             if(j>=l2){
23                 s++;i=i+l2-1;
24             }
25         //    i++next[k];
26             k++;
27         }
28         printf("%d
",s); 
29     }
30     return 0;
31 }
原文地址:https://www.cnblogs.com/h404nofound/p/11704051.html