题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string str1,str2;
getline(cin,str1);
getline(cin,str2);
string temp;
bool flag = false;
string smallStr = str1.size()>str2.size()?str2:str1;
string biggerStr = str1.size()>str2.size()?str1:str2;
for(int i = smallStr.size();i!=0;--i)
{
for(int j = 0;j+i!=smallStr.size()+1;++j)
{
string sstr = smallStr.substr(j,i);
if(biggerStr.find(sstr)!=string::npos)
{
temp = sstr;
flag = true;
break;
}
}
if(flag)
break;
}
cout<<temp;
}
// 64 位输出请用 printf("%lld")
getline读取以后会舍弃'\n'这样的换行符号,不需要再cin.ignore(),cin.ignore()是忽略cin的下一个字符

查看15道真题和解析