Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 1.62 KB

11.md

File metadata and controls

63 lines (43 loc) · 1.62 KB

⬅️ Regresar

Reto #11: 📖 Los elfos estudiosos

Instrucciones

En el taller de Santa, los elfos aman los acertijos 🧠. Este año, han creado uno especial: un desafío para formar un palíndromo navideño.

Un palíndromo es una palabra que se lee igual hacia adelante y hacia atrás. Los elfos quieren saber si es posible formar un palíndromo haciendo, como mucho, un intercambio de letras.

Crea una función getIndexsForPalindrome que reciba una cadena de caracteres y devolverá:

  • Si ya es un palíndromo, un array vacío.
  • Si no es posible, null.
  • Si se puede formar un palíndromo con un cambio, un array con las dos posiciones (índices) que se deben intercambiar para poder crearlo.

Por ejemplo:

getIndexsForPalindrome('anna') // []
getIndexsForPalindrome('abab') // [0, 1]
getIndexsForPalindrome('abac') // null
getIndexsForPalindrome('aaaaaaaa') // []
getIndexsForPalindrome('aaababa') // [1, 3]
getIndexsForPalindrome('caababa') // null

Si se puede formar el palíndromo con diferentes intercambios, siempre se debe devolver el primero que se encuentre.



Solución

function getIndexsForPalindrome (word) {
	if (word === word.split('').reverse().join('')) return []

	for (const i in word) {
		for (let j = +i + 1; j < word.length; j++) {
			const arr = word.split("")
			const temp = arr[i];
			arr[i] = arr[j];
			arr[j] = temp;

			if (arr.join("") === arr.reverse().join("")) return [+i, j]
		}
	}

	return null
}

Puntaje: 40


⬅️ Regresar