判斷s1,s2是否能組成s3,可以全部匹配,比較簡單,直接判斷就行
#include<stdio.h>
#include<string.h>
int dp[1010][1010];
int l1,l2;
char s1[1010],s2[1010],s3[2020];
int main()
{
int i,j,k,n;
scanf("%d",&n);
for(k=1;k<=n;k++)
{
scanf("%s %s %s",&s1,&s2,&s3);
memset(dp,0,sizeof(dp));
l1=strlen(s1);
l2=strlen(s2);
dp[0][0]=1;
for(i=0;i<=l1;i++)
{
for(j=0;j<=l2;j++)
{
if(i>0&&s1[i-1]==s3[i+j-1]&&dp[i-1][j]==1)
dp[i][j]=1;
if(j>0&&s2[j-1]==s3[i+j-1]&&dp[i][j-1]==1)
dp[i][j]=1;
}
}
printf("Data set %d: ",k);
if(dp[l1][l2]==1)
printf("yes\n");
else
printf("no\n");
}
return 0;
}