#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<algorithm> using namespace std; char str1[210]; int num1; char str2[210]; int num2; char ans[500]; int num; bool d[210][210]; int main() { int np=1; int i,j; int n; scanf("%d",&n); getchar(); while(n--) { scanf("%s %s %s",str1,str2,ans); getchar(); num1=strlen(str1); num2=strlen(str2); num=strlen(ans); memset(d,false,sizeof(d)); d[0][0]=true; for(i=1;i<=num1;i++) { d[i][0]=(d[i-1][0])&&(str1[i-1]==ans[i-1]); } for(i=1;i<=num2;i++) { d[0][i]=(d[0][i-1])&&(str2[i-1]==ans[i-1]); } for(i=1;i<=num1;i++) { for(j=1;j<=num2;j++) { d[i][j]=d[i-1][j]&&(str1[i-1]==ans[i+j-1]); if(d[i][j]) { continue; } d[i][j]=d[i][j-1]&&(str2[j-1]==ans[i+j-1]); } } if(d[num1][num2]) { printf("Data set %d: yes\n",np++); continue; } printf("Data set %d: no\n",np++); } return 0; }
转载于:https://www.cnblogs.com/willzhang/archive/2012/08/06/2625698.html