简单题
View Code
#include
<
iostream
>
#include < cstdlib >
#include < cstring >
#include < cstdio >
using namespace std;
#define maxn 405
char a[maxn], b[maxn], c[maxn];
bool found;
void work( int ap, int bp, int cp)
{
if (found)
return ;
if (cp == - 1 )
{
found = true ;
return ;
}
if (ap >= 0 && c[cp] == a[ap])
work(ap - 1 , bp, cp - 1 );
if (bp >= 0 && c[cp] == b[bp])
work(ap, bp - 1 , cp - 1 );
}
int main()
{
// freopen("t.txt", "r", stdin);
int t;
scanf( " %d " , & t);
for ( int i = 0 ; i < t; i ++ )
{
scanf( " %s " , a);
scanf( " %s " , b);
scanf( " %s " , c);
found = false ;
work(strlen(a) - 1 , strlen(b) - 1 , strlen(c) - 1 );
printf( " Data set %d: " , i + 1 );
if (found)
printf( " yes\n " );
else
printf( " no\n " );
}
return 0 ;
}
#include < cstdlib >
#include < cstring >
#include < cstdio >
using namespace std;
#define maxn 405
char a[maxn], b[maxn], c[maxn];
bool found;
void work( int ap, int bp, int cp)
{
if (found)
return ;
if (cp == - 1 )
{
found = true ;
return ;
}
if (ap >= 0 && c[cp] == a[ap])
work(ap - 1 , bp, cp - 1 );
if (bp >= 0 && c[cp] == b[bp])
work(ap, bp - 1 , cp - 1 );
}
int main()
{
// freopen("t.txt", "r", stdin);
int t;
scanf( " %d " , & t);
for ( int i = 0 ; i < t; i ++ )
{
scanf( " %s " , a);
scanf( " %s " , b);
scanf( " %s " , c);
found = false ;
work(strlen(a) - 1 , strlen(b) - 1 , strlen(c) - 1 );
printf( " Data set %d: " , i + 1 );
if (found)
printf( " yes\n " );
else
printf( " no\n " );
}
return 0 ;
}