题目描述
分行输入两个字符串(2< =字符串长度< =100),找出两个字符串中最大的公共子串,然后将公共子串及公共子串的长度分行输出
例如:输入两个宇串为abcdab和baabcd,其最大的公共子串为"abcd",子串长度为4.
输入
第一行输入一个字符串,第二行输入一个字符串
输出
第一行输出最大公共子串 ,第二行输出最大公共子串长度
样例输入
abcdab
baabcd
样例输出
abcd
4
思路:从长到短枚举其中⼀个字符串的⼦串,并判断这个⼦串是否存在于另⼀个字符串⾥即可。
程序:
#include<bits/stdc++.h>
using namespace std;
string a,b;
int main(){
cin>>a>>b;
for(int l=a.size();l>=1;l--){
for(int i=0;i<=a.size()-l;i++){
if(b.find(a.substr(i, l))<b.size()){
cout<<a.substr(i, l)<<endl;
cout<<l;
return 0;
}
}
}
return 0;
}