获取c++中的最大公共字符串

Get Maximum Common String in C++?

本文关键字:字符串 c++ 获取      更新时间:2023-10-16

我有两个字符串:

"abcdef"answers"123abcdef123"

我正在寻找一个函数,得到这2个字符串作为参数,并返回最大的常见字符串。所以在这种情况下,它应该返回"abcdef"。

答案:

字符串通用(字符串第一,字符串第二){

string lcsub, max;
for (unsigned int i=0; i < first.length(); i++)
    for (unsigned int j=0; j < second.length(); j++)
        for (unsigned int k=1; k <= first.length() && k <= second.length(); k++){
            if (first.substr(i,k) == second.substr(j,k)){
                lcsub = first.substr(i,k);
            }
            else{
                if (lcsub.length() > max.length())
                    max=lcsub;
                lcsub="";
            }
        }
if (lcsub.length() > max.length())
    max=lcsub;
lcsub="";
cout << "Longest Common Substring: " << max << endl;
return max;

}