string LCS(string str1, string str2) {
// write code here
int m = str1.size(), n = str2.size();
string res;
int len = 0;
int index = 0;
vector<vector<int>> dp(m + 1, vector<int>(n + 1));
for (int i = 0; i < m; ++i)
{
for (int j = 0; j < n; ++j)
{
if (str1[i] == str2[j])
{
dp[i + 1][j + 1] = 1 + dp[i][j];
if (dp[i + 1][j + 1] > len)
{
len = dp[i + 1][j + 1];
index = i;
}
}
}
}
return str1.substr(index - len + 1, len);
}
最长公共子串(C++实现)
最新推荐文章于 2024-07-19 16:12:52 发布