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

181
Views
Compruebe si es posible organizar las cadenas de manera que cada par de cadenas consecutivas difiera en 1 carácter

Dada una matriz de cadenas de igual longitud, le gustaría saber si es posible reorganizar el orden de los elementos de tal manera que cada par de cadenas consecutivas difiera exactamente en un carácter. Devuelve true si es posible y false si no.

Nota: ¡Solo está reorganizando el orden de las cadenas, no el orden de las letras dentro de las cadenas!

Ejemplo

  • Para inputArray = ["aba", "bbb", "bab"] , la salida debe ser:

    solución (inputArray) = falso.

Hay 6 arreglos posibles para estas cuerdas:

 * ["aba", "bbb", "bab"] * ["aba", "bab", "bbb"] * ["bbb", "aba", "bab"] * ["bbb", "bab", "aba"] * ["bab", "bbb", "aba"] * ["bab", "aba", "bbb"]

Ninguno de estos cumple la condición de cadenas consecutivas que difieren en 1 carácter, por lo que la respuesta es falsa.

  • Para inputArray = ["ab", "bb", "aa"] , la salida debe ser:

    solución (inputArray) = verdadero.

Es posible organizar estas cadenas de manera que cada par de cadenas consecutivas difiera en 1 carácter (por ejemplo: "aa", "ab", "bb" o "bb", "ab", "aa" ), por lo que devuelve verdadero .

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Creo que el algoritmo podría describirse de la siguiente manera

  1. Escriba una función que cuente las diferencias entre dos cadenas ( difCount() )

  2. Compare cada par de cadenas (es decir, 1 con 2, 1 con 3, 2 con 3) para comprobar que todas las cadenas tienen un "amigo" que difiere solo en 1 carácter.

  3. Si hay al menos una cadena que no tiene un par, la prueba falla.

 arr = ["ff", "gf", "af", "ar", "hf"]; // count how many letters are differnt between two strings function difCount(str1, str2){ dif_count = 0; [...str1].map((val, ind) => { // val != str2[ind] is comparison between the chars in the neighboring strings at the same indexes (ie first with first, second with second) // if comparison passes, then it is 1, so dif_count (which counts the differences) increments, otherwise it doesn't increment dif_count += val != str2[ind]; }) return dif_count; } // create array of zeros with the length of arr.length checks = Array(arr.length).fill(0); // below we compare each element with every another element. //If there's a pair of strings str1 and str2 with the difference of 1 character, we set the corresponding indexes in "checks" array to 1. //If the "checks" array contains all 1's then all the strings have pairs, otherwise test fails. //If array contains duplicates, then test fails dupes = 0; arr.map((str1, ind1) => { arr.map((str2, ind2) => { if(difCount(str1, str2) == 1){ checks[ind1] = 1; checks[ind2] = 1; } if(str1 == str2 && ind1 != ind2) dupes = 1; }) }) // So, if there're no dupes and no zeros in the checks array, then the test has passed pass = !dupes && !checks.includes(0) ? "pass" : "fail"; console.log(pass)

about 4 years ago · Juan Pablo Isaza Report
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!