字符串环

解题思路

将它们复制一遍
再进行查找处理

AC代码

#include<cstdio>
#include<cstring>
#include<iostream> 
using namespace std;
string s1,s2;
int answer;
int main()
{
   
	cin>>s1>>s2;
	s1+=s1;//复制
	s2+=s2;
	int l1=s1.size(),l2=s2.size();//长度
	if(l1>l2)//交换
	{
   
		swap(s1,s2);
		swap(l1,l2);
	}
	for(int i=0;i<l1/2;i++)//查找
	 for(int j=1;j<=l1/2;j++)
	 {
   
	 	int find=s2.find(s1.substr(i,j));
	 	if(find!=-1)
	 	 answer=max(answer,j);
	 }
	printf("%d",answer);
	return 0;
}

谢谢