链接:点击打开链接
判断最后一个字符串是否可以组成前面的字符串,输出可以组成的数量,‘_’代表可以任意字母。
In the first test case, PIZZA
, ZA
and PITA
can be spelled as PIZ_A
, ZA
and PI_A
. There are not enough letters to spell PROGRAM
or CONTEST
. In the second test case, BANANAS
and FIGS
can be spelled as _A_A_A_
and____
. On the other hand, CARROTS
would require 6 blanks in addition to the A
.
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
char str1[1010][10],str2[10],str3[10];
int main(){
int i,len,n,num,k,count,sum,x,j,y;
while(~scanf("%d",&n)&&n){
for(i=0;i<n;i++)
scanf("%s",&str1[i]);
scanf("%s",str2);
num=0;
len=strlen(str2);
j=0;
for(i=0;i<len;i++){
if(str2[i]=='_')
num++;
else
str3[j++]=str2[i];
}
str3[j]='\0';
sum=0;
count=0;
for(i=0;i<n;i++){
//y=0;
len=strlen(str1[i]);
for(k=0;k<j;k++)
for(x=y;x<len;x++){
if(str3[k]==str1[i][x]){
str1[i][x]='.';
count++;
// y=x+1;
break;
}
}
if(count<=j&&(len-count)<=num)
sum++;
count=0;
}
printf("%d\n",sum);
}
return 0;
}