hduing1501_判断合并_dfs_数组

来源:互联网 发布:手机怎么制作网络问卷 编辑:程序博客网 时间:2024/06/07 03:55
#include<iostream>#include<stdio.h>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000;char s1[300],s2[300],s3[600]; //数组的长度int len1,len2,len3;int visit[maxn][maxn];int dfs(int i,int j,int k){    if(visit[i][j]) return 0;       visit[i][j]=1;       if(k==len3) return 1;    if(s1[i]==s3[k])    {        if(dfs(i+1,j,k+1))            return 1;    }    if(s2[j]==s3[k])    {        if(dfs(i,j+1,k+1))            return 1;    }    return 0;//如果越界,不考虑;}int main(void){    int n,m;    int i,j,k;    scanf("%d",&n);        for(i=1;i<=n;i++)        {            scanf("%s %s %s",s1,s2,s3);            len1=strlen(s1);            len2=strlen(s2);            len3=strlen(s3);            memset(visit,0,sizeof(visit));            printf("Data set %d: ",i);            printf(dfs(0,0,0)?"yes\n":"no\n");        }}

0 0