#include<iostream>
#include<string>
using namespace std;
string iQueryMaxCommString(string s1, string s2);
int main(){
string strA, strB;
cin>>strA>>strB;
cout << iQueryMaxCommString(strA, strB) <<endl;
return 0;
}
string iQueryMaxCommString(string s1, string s2){
int flag = 1;
string maxlen;
string null = "null";
int len1 = s1.length();
int len2 = s2.length();
if(len1 == 1){
if(s2.find(s1) != s2.npos)
return s1;
else
return null;
}
if(len2 == 1){
if(s1.find(s2) != s1.npos) return s2;
else
return null;
}
if(len1 > len2){
//cout<<"----------len1 > len2----------"<<endl;
for(int i = 0; i < len2 - 1; i++){
for(int j = 1; j <= len2; j++){
string temp = s2.substr(i, j - i);
if(s1.find(temp) != s1.npos){
flag = 0;
if(temp.length() > maxlen.length()) maxlen = temp;
}
}
}
//cout<<"flag = "<<flag<<endl;
//cout<<"maxlen = "<<maxlen<<endl;
if(flag == 1)
return null;
else
return maxlen;
}
else{
//cout<<"----------len1 <= len2----------"<<endl;
for(int i = 0; i < len1 - 1; i++){
for(int j = 1; j <= len1; j++){
string temp = s1.substr(i, j - i);
if(s2.find(temp) != s2.npos){
flag = 0;
if(temp.length() > maxlen.length()) maxlen = temp;
}
}
}
//cout<<"flag = "<<flag<<endl;
//cout<<"maxlen = "<<maxlen<<endl;
if(flag == 1)
return null;
else
return maxlen;
}
}
查找兩個字符串a,b中的最長公共子串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.