蓝桥杯 最长公共子序列 知识点:find()和substr()

33 阅读1分钟

0查找最长的公共子序列 - 蓝桥云课 (lanqiao.cn)

用find和substr

#include<bits/stdc++.h>
using namespace std;

int main()
{
	string s1,s2,s3;cin>>s1>>s2;
	
	int minlen=min(s1.size(),s2.size()); 
	
	int maxlen=0;
	for(int i=0;i<minlen;i++)  //从小的开始是为了防止越界
	{
		for(int j=0;j<s1.size();j++)
		{
			string temp=s1.substr(j,i);
			if(s2.find(temp)!=string::npos)
			{
				int len=temp.size();
				maxlen=max(maxlen,len);  //最长公共子序列长度
			    s3=temp;               //最长公共子序列
			}
		}
	}
	
	cout<<s3;
	return 0;
}