和T1116 验证子串 基本类似,只多了一个母字符串的循环移位
#include <iostream>
using namespace std;
int main()
{
string str[2];
cin>>str[0]>>str[1];
int len1=str[0].length(),len2=str[1].length();
if(len1>len2)
{
str[0].swap(str[1]);
int temp=len1;
len1=len2;
len2=temp;
}
int i=0,j=0,len3=len2;
while(len3--)
{
i=0,j=0;
char temp=str[1][0];
for(int k=0;k<len2-1;k++)
{
str[1][k]=str[1][k+1];
}
str[1][len2-1]=temp;
while(1)
{
if(i==len2)
break;
if(str[0][j]==str[1][i])
{
i++;
j++;
if(j==len1)
{
cout<<"true";
exit(0);
}
}
else
{
i=i-j+1;
j=0;
}
}
}
cout<<"false";
return 0;
}