Modo: Top-Down
Cadena 1
Cadena 2
Velocidad animación
Llenado de tabla
const lcs = (X, m, Y, n, memo) => { |
if (memo[m][n] > -1) { |
return memo[m][n]; |
} else if (m === 0 || n === 0) { |
memo[m][n] = 0; |
} else if (X[m - 1] === Y[n - 1]) { |
memo[m][n] = 1 + lcs(X, m - 1, Y, n - 1, memo); |
} else { |
memo[m][n] = Math.max(lcs(X, m - 1, Y, n, memo),lcs(X, m, Y, n - 1, memo)); |
} |
return memo[m][n]; |
} |
Obtención de LCS
while (i > 0 && j > 0) { |
if (X[i - 1] === Y[j - 1]) { |
lcsString = X[i - 1] + lcsString; i--; j--; |
} else if (dpTable[i - 1][j] > dpTable[i][j - 1]) { |
i--; |
} else { |
j--; |
} |
} |