在 JavaScript 中查找两个字符串之间最长的公共连续子字符串
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/2/21 22:04:17
我们需要编写一个 JavaScript 函数来接收两个字符串。我们将它们称为 str1 和 str2。然后,该函数应找出两个输入字符串共同的最长连续字符串并返回该共同字符串。
例如 −
如果输入字符串为 −
const str1 = 'ABABC'; const str2 = 'BABCA';
则输出字符串应为 −
const output = 'BABC';
示例
以下是代码 −
const str1 = 'ABABC';
const str2 = 'BABCA';
const findCommon = (str1 = '', str2 = '') => {
const s1 = [...str1];
const s2 = [...str2];
const arr = Array(s2.length + 1).fill(null).map(() => {
return Array(s1.length + 1).fill(null);
});
for (let j = 0; j <= s1.length; j += 1) {
arr[0][j] = 0;
}
for (let i = 0; i <= s2.length; i += 1) {
arr[i][0] = 0;
}
let len = 0;
let col = 0;
let row = 0;
for (let i = 1; i <= s2.length; i += 1) {
for (let j = 1; j <= s1.length; j += 1) {
if (s1[j - 1] === s2[i - 1]) {
arr[i][j] = arr[i - 1][j - 1] + 1;
}
else {
arr[i][j] = 0;
}
if (arr[i][j] > len) {
len = arr[i][j];
col = j;
row = i;
}
}
}
if (len === 0) {
return '';
}
let res = '';
while (arr[row][col] > 0) {
res = s1[col - 1] + res;
row -= 1;
col -= 1;
}
return res;
};
console.log(findCommon(str1, str2));
输出
以下是控制台上的输出 −
BABC
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

