#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * longest common substring * @param str1 string字符串 the string * @param str2 string字符串 the string * @return string字符串 */ string LCS(string str1, string str2) { int m = str1.length(), n = str2.length(); vector<vector<int>> f(m + 1, vector<int> (n + 1, 0)); int maxLength = 0, pos = 0; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { if (str1[i - 1] == str2[j - 1]) { f[i][j] = f[i - 1][j - 1] + 1; } else { f[i][j] = 0; } if (f[i][j] > maxLength) { maxLength = f[i][j]; pos = i - 1; } } } return str1.substr(pos - maxLength + 1, maxLength); } };