编辑代码

#include<bits/stdc++.h>
using namespace std;
int dp[1000][1000];
int main()
{
	string s1="foshsts";
    string s2= "fosstss";
	int len1=s1.size(),len2=s2.size();
	for(int i=0;i<len1;i++)
		for(int j=0;j<len2;j++)
			dp[i][j]=0;
	int besti=0,bestj=0,len=0;
	for(int i=0;i<len1;i++)
		for(int j=0;j<len2;j++)
			if(s1[i]==s2[j])
			{
				if((i==0)||(j==0)) dp[i][j]=1;
				else dp[i][j]=dp[i-1][j-1]+1 ;//方程
			}
			else dp[i][j]=0;
	for(int i=0;i<len1;i++)
		for(int j=0;j<len2;j++)
			if(dp[i][j]>len)
				len=dp[i][j],besti=i,bestj=j;
	cout<<len<<endl;
	for(int i=besti-len+1;i<=besti;i++)
		cout<<s1[i];
	return 0;
}