题目给出的暴力题,这我使用的也是直接的暴力递归求解,芯片每次往右一次则向左直到边界。
string a,b;
bool flag;
void dfs(int x,string t,bool vis)//vis为true向左遍历,false向右
{
if (flag==true) return ;
if (t.size()>b.size())
return ;
if (vis==true)
{
for(int i=x;i>=0;i--)
{
t+=a[i];
if (t==b)
{
flag=true;
return ;
}
}
}
else
{
for(int i=x;i<a.size();i++)
{
t+=a[i];
if (t==b)
{
flag=true;
return ;
}
dfs(i-1,t,true);
}
}
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
cin>>a>>b;
int j=0;
flag=false;
for(int i=0;i<a.size();i++)
{
dfs(i,"",false);
if (flag==true) break;
}
if (flag)
printf("YES\n");
else printf("NO\n");
}
return 0;
}