Quiero ejecutar este código y aba pero no bab . ¿Cómo puedo obtener la solución de este código? Sugerencias con explicaciones para que pueda entender correctamente.
Input: s = "babad" Output: "bab" Explanation: "aba" is also a valid answer. var longestPalindrome = function(s) { let splitString = s.split(""); let reverse = splitString.reverse() console.log(reverse) let check_value = s.split("") console.log(check_value) let store = [] check_value.map((x,id) => { if(x == reverse[id]){ store.push(x) } }) console.log(store) };Su función no está haciendo bien el trabajo. Asume que el centro del palíndromo está siempre en el centro de la cadena de entrada. Eso explica por qué no se encuentra "bab".
Pero lo que es peor, incluso dará falsos positivos.
Por ejemplo:
Entrada: "dobad"
Salida: ["d", "b", "d"]
Por lo tanto, deberá volver a visitar el desafío del código. El enfoque que tenías en mente no es el correcto.
Si no puede encontrar cómo hacerlo, eche un vistazo a la subcadena palindrómica más larga en Wikipedia. También en este sitio hay varias preguntas y respuestas sobre el tema.
Entonces, tienes estas letras en las matrices: check_value => 0: b, 1: a, 2: b, 3: a, 4: d reverse => 0: d, 1: a, 2: b, 3: a , 4: segundo
Y en tu algoritmo, estás haciendo
Primer paso:
Segundo paso:
Y así sucesivamente, esa es la razón por la cual el algoritmo no funciona.
Un consejo, itere la cadena y encuentre el siguiente índice del carácter actual, por lo tanto, si el carácter es b , busque los índices de cualquier otro b en la misma matriz y valide si la subcadena generada entre el índice del carácter actual y los índices encontrados es un palíndromo