Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

275
Views
Son lo mismo"? Kata de guerra de códigos

Estoy tratando de resolver el kata de codewars mencionado anteriormente con las siguientes instrucciones:

Dadas dos matrices a y b, escriba una función comp(a, b) (ocompSame(a, b)) que verifique si las dos matrices tienen los "mismos" elementos, con las mismas multiplicidades (la multiplicidad de un miembro es el número de veces que aparece). "Igual" significa, aquí, que los elementos en b son los elementos en a al cuadrado, independientemente del orden.

Ejemplos Matrices válidas a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 361, 25921, 361, 20736, 361] comp(a, b) devuelve verdadero porque en b 121 es el cuadrado de 11, 14641 es el cuadrado de 121, 20736 es el cuadrado de 144, 361 el cuadrado de 19, 25921 el cuadrado de 161, y así sucesivamente. Se vuelve obvio si escribimos los elementos de b en términos de cuadrados:

a = [121, 144, 19, 161, 19, 144, 19, 11] b = [11 11, 121 121, 144 144, 19 19, 161 161, 19 19, 144 144, 19 19] Matrices no válidas si, por ejemplo, cambiamos el primer número a otra cosa, comp ya no vuelve verdadero:

a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [132, 14641, 20736, 361, 25921, 361, 20736, 361] comp(a,b) devuelve falso porque en b 132 no es el cuadrado de ningún número de a.

a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 36100, 25921, 361, 20736, 361] comp(a,b) devuelve falso porque en b 36100 no es el cuadrado de ningún número de a.

Los comentarios a o b pueden ser [] o {} (todos los idiomas excepto R, Shell). a o b puede ser nulo o nulo o Ninguno o nada (excepto en C++, Crystal, D, Dart, Elixir, Fortran, F#, Haskell, Nim, OCaml, Pascal, Perl, PowerShell, Prolog, PureScript, R, Racket, Rust , Concha, Vencejo). Si a o b son nulos (o nulos o ninguno, según el idioma), el problema no tiene sentido, por lo que devuelve falso.

Este es mi código, que está pasando las pruebas iniciales pero fallando algunas pruebas más tarde:

 const comp = (a, b) => { function sortNumber(n1, n2) { return n1 - n2; } if (a === [] || b === [] || a === {} || b === {} || a === null || b === null) { return false } else { a = a.sort(sortNumber) b = b.sort(sortNumber) } for (let i = 0; i < a.length; i++) { for (let i = 0; i < b.length; i++) { if (Math.pow(a[i], 2) === b[i]) { return true } else { return false } } } }

El mensaje de error que recibo es: también debería funcionar con entradas aleatorias: se esperaba que fuera falso pero se hizo verdadero (o viceversa). ¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!