Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

348
Vistas
Cómo comparar dos cadenas y eliminar diferencias- Hacer anagramas

Sé que este es un tema que ya está aquí en stackoverflow, pero estos enfoques son los que no quiero seguir porque no los entiendo, por lo que es una pérdida de tiempo simplemente copiarlo.

Soy bastante nuevo en Javascript y me gustaría pedirles ayuda con los anagramas. Estoy trabajando en tareas de HackerRank y hay una con anagrama.

Actualmente, he creado algunos enfoques que creo que pueden conducir a un resultado correcto, pero no están terminados y me siento perdido después de horas de buscar una solución atractiva.

Aquí está la solución 1: creo que esto funcionaría, pero hay un problema con el conteo, me devolverá 1 ya que solo la letra "C" está en ambas cadenas, pero lo que quiero es devolver 2 ya que había dos "C". letras. ¿Hay alguna manera de cómo puedo lograrlo?

 function makeAnagram(a, b) { let count = 0; arrayA = Array.from(a); arrayB = Array.from(b); const try3 = try1.concat(try2); let sameLetters = arrayA.filter(item => arrayB.includes(item)) { count++; } console.log(sameLetters); console.log(count); count = (try3.length - sameLetters2.length); } console.log(makeAnagram("cde", "abc"));

La siguiente solución fue con ciclos, pero probablemente esto no sea suficiente y no sea correcto.

 function makeAnagram(a, b) { let count = 0; let deleted = 0; for(let i = 0; i < a.length; i++) { for(let j = 1; j < b.length; j++) { if(arrayA[i] == arrayB[i]) { count++; } else { deleted++; } } }

Y la última solución que estaba probando y me parece una buena solución es:

 function makeAnagram(a, b) { const array2 = [...a.split(""), ...b.split("")] console.log(array2); const something = array2.reduce((acc, letter) => array2.includes(letter) ? [] : [...acc, letter],[]) } }

Gracias

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda