题目为啥是困难…
将A,B分别复制到C,D 但是分别重复两遍,这样就忽略掉移位问题了
然后来个查找或者自己写个查找函数 就行了
C++ 代码
# include <cstdio>
# include <iostream>
# include <cstring>
using namespace std;
# define N 1001
char A[N],B[N],C[2*N],D[N*2];
int BF(char A[],char B[])
{
int i=0,j=0;
while(A[i]&&B[j])
{
if(A[i++]==B[j])j++;
else {i-=j;j=0;}
}
return B[j]?0:i-j+1;
}
int main()
{
scanf("%s %s",A,B);
strcpy(C,A);
strcat(C,A);
strcpy(D,B);
strcat(D,B);
if(BF(C,B)||BF(D,A))printf("true\n");
else printf("false\n");
return 0;
}