POJ 2973 : Scrabble - 字符串

来源:互联网 发布:淘宝买家秀福利的店铺 编辑:程序博客网 时间:2024/06/05 20:24
(寒假马拉松 第二场 B题)

字符串处理

题意:

判断最后一个字符串是否可以组成前面的字符串,输出可以组成的数量,‘_’代表可以任意字母。

In the first test case, PIZZAZA and PITA can be spelled as PIZ_AZA 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 s1[1005][10],s2[10],s3[10];int main(){int n,num,sum,len,cnt,a,i,j,k;while(~scanf("%d",&n)&&n){num=sum=j=cnt=0;for(i=0;i<n;i++)scanf("%s",s1[i]);scanf("%s",s2);len=strlen(s2);for(i=0;i<len;i++)if(s2[i]=='_')num++;elses3[j++]=s2[i];s3[j]='\0';//for(i=0;i<strlen(s2);i++)printf("%c",s2[i]);puts("");for(i=0;i<strlen(s3);i++)printf("%c",s3[i]);puts("");//printf("%d\n",len);for(i=0;i<n;i++){len=strlen(s1[i]);for(k=0;k<j;k++)for(a=0;a<len;a++){ //printf("a: %d  ",a);if(s3[k]==s1[i][a]){s1[i][a]='.';cnt++;break;}}if(cnt<=j && (len-cnt)<=num)sum++;cnt=0;}printf("%d\n",sum);}return 0;}



0 0