本文共 1445 字,大约阅读时间需要 4 分钟。
function LCS(str1, str2) { let arr = [] for (let i = 0; i < str1.length; i++) { arr.push([]) for (let j = 0; j < str2.length; j++) { if (str2[j] === str1[i]) { if (i && j && arr[i - 1][j - 1]) { arr[i].push(arr[i - 1][j - 1] + 1) } else { arr[i].push(1) } } else { arr[i].push(0) } } } for (let i = 0; i < str1.length; i++) { console.log(arr[i].join(' ')) } let max = 0 let index = 0 for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[0].length; j++) { if (arr[i][j] > max) { index = j max = arr[i][j] } } } return str2.substr(index - max + 1, max)}
function LCS(str1, str2) { let max = 0 let left = 0 let right = 0 for (let i = 0; i < str2.length;) { for (j = i + 1; j <= str2.length; j++) { let sub = str2.substring(i, j) if (str1.includes(sub)) { let tempLeft = i let tempRight = j if (tempRight - tempLeft > max) { left = i right = j max = right - left } } else { i = j - i > 1 ? j - 1 : j break } } } return str2.substring(left, right)}
转载地址:http://ztdqi.baihongyu.com/