题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
#include <bits/stdc++.h>
using namespace std;
int main() {
string str1, str2;
getline(cin, str1);
getline(cin, str2);
int temp;
string word_temp = "";
int len = 0;
string word = "";
int len1 = str1.size();
int len2 = str2.size();
string str3;
if(len1>len2){str3=str2; str2=str1; str1=str3;}
len1 = str1.size();
len2 = str2.size();
for(int i=0; i<len1; i++){
for(int j=0; j<len2; j++){
temp = 0;
word_temp = "";
if(str1[i] == str2[j]){
temp += 1;
word_temp += str1[i];
int step=min(len1-i,len2-j);
for(int k=1; k<step; k++){
if(str1[i+k]==str2[j+k]){temp += 1; word_temp += str1[i+k];}
else break;
}
}
if(len<temp){
len = temp;
word = word_temp;
}
}
}
cout << word;
return 0;
}
// 64 位输出请用 printf("%lld")

