我觉得我的真的很简单
#include<iostream>
using namespace std;
int main(void) {
string s1; string s2; cin >> s1; cin >> s2; string temp;string s3;int temp2;
int len1 = s1.size(); int len2 = s2.size();
if(len1<len2){s3=s1;s1=s2;s2=s3;temp2=len1;len1=len2;len2=temp2;}
//比较s1和s2的长度,进行互换,确保长度s1>s2;
int len = 2 * len1;//两倍是为了循环,也是我思路的精髓,时间复杂度只有(2n*m);
for (int i = 0; i < len; i++)
{
temp = "";
for (int j = i; j < i+len2; j++)
temp += s1[j % len1];
// 循环比对长度为len2的字符串,长度超过len1时回到开始即开始移位
if (temp == s2)
{
cout << "true"; return 0;//如果找到则直接退出
}
}
cout << "false";//一直找不到则输出false
return 0;
}
球球多支持