Por alguna razón, mi solución devuelve un valor nulo en lugar del valor almacenado en 's'. Las instrucciones y el código están a continuación:
Se le da una cadena s. Considere el siguiente algoritmo aplicado a esta cadena:
Tome todos los prefijos de la cadena y elija el palíndromo más largo entre ellos. Si este prefijo elegido contiene al menos dos caracteres, elimine este prefijo de s y vuelva al primer paso con la cadena actualizada. De lo contrario, termine el algoritmo con la cadena actual s como resultado. Su tarea es implementar el algoritmo anterior y devolver su resultado cuando se aplica a cadenas s.
caso de prueba const s = "aaacodedoc"
Rendimiento esperado: ""
otro caso de prueba
const s = salida esperada "abbab": "b"
function solution(s) { const prefixes =[] if(s.length === 0){ return "" } if(s.length === 1){ return s } for(let i = 0; i < 1; i++){ for(let j = i; j < s.length; j++){ const substr = s.substring(i, j + 1) prefixes.push(substr) } } const palindromes = prefixes.filter(prefix => { let reverse = prefix.split('').reverse().join(''); return prefix === reverse }) let longest = palindromes.sort( function (a, b) { return b.length - a.length; })[0]; if(longest.length >= 2){ s = s.substring(longest.length) solution(s) } else{ return s; } }