Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda