1. 程式人生 > >HDU 2087 剪花布條

HDU 2087 剪花布條

剪花布條

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 30554    Accepted Submission(s): 18735  

Problem Description

一塊花布條,裡面有些圖案,另有一塊直接可用的小飾條,裡面也有一些圖案。對於給定的花布條和小飾條,計算一下能從花布條中儘可能剪出幾塊小飾條來呢?

Input

輸入中含有一些資料,分別是成對出現的花布條和小飾條,其布條都是用可見ASCII字元表示的,可見的ASCII字元有多少個,布條的花紋也有多少種花樣。花紋條和小飾條不會超過1000個字元長。如果遇見#字元,則不再進行工作。

Output

輸出能從花紋布中剪出的最多小飾條個數,如果一塊都沒有,那就老老實實輸出0,每個結果之間應換行。

Sample Input

abcde a3 aaaaaa aa #

Sample Output

0

3

//水題
//基礎思維吧
#include<iostream> 
#include<cstring>
using namespace std;
char s1[1009],s2[1009];
int main(void){
	int ans;
	int lens1,lens2,flag;
	while( 1 ){
		flag = 0;
		scanf("%s",&s1);
		if( s1[0] == '#' )
		    break;
		scanf("%s",&s2);
		ans = 0;
		lens1 = strlen(s1);
		lens2 = strlen(s2);
		for( int i=0;i<lens1;i++)
		       if( s1[i] == s2[flag]){
		     	 	flag++;
		     	 	if( flag == lens2){
		     	 		ans++;
		     	 		flag = 0;
					  }
				  }
			   else flag = 0; //不等於,就把 flag 歸零。	  
		printf("%d\n",ans);	  
		 
	}
	 
	return 0;
}