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

215
Visualizações
Hacer que un contador se detenga si rompe una secuencia determinada

Breve resumen sobre mi pregunta: estoy tratando de convertir una secuencia en una secuencia "condicional": la entrada es AN ARRAY hecho solo con verdadero y falso, lo que creo que lo hará más difícil de lo que sería si estuviera hecho de una secuencia de números. La idea es hacer que cuente una secuencia de "verdadero" y se rompa cuando la siguiente entrada sea "falso" y devuelva el conteo más grande.


 // If the input is something like [true, true, ... true, true] // should return count => input.length // My issue is to make it break when it have a interruption ie // [true, true, true, false, true, true, false] // should return => the bigger sequence; with my code it returns 5 function sol(sequence) { let count = 0; for (let i = 0; i < sequence.length; i++) { if (sequence[i] == true) { if (sequence[i] == sequence[i+1]){ count++; } } } // I tried to add a break; but isn't worked like i wanted // for (let i = 0; i < sequence.length; i++) { // if (sequence[i] == true) { // if (sequence[i] == sequence[i+1]){ // count++; // } // if (sequence[i] != sequence[i+1]) { // break; // } // } // } // I need the counter has bigger (or equals) than 7 otherwise it return a "fail" if (count >= 7) { console.log(count) } else { console.log('failed') } }


Después de algunas explicaciones en la publicación, aquí hay un resultado funcional:

 function sol(sequence) { // Move the "+1" to low then when have no "true" will return 0. let count = 0; let largestSequence = 0; for (let i = 0; i < sequence.length; i++) { if (sequence[i] == true) { if (sequence[i] == sequence[i + 1]) { count++; } } else { if (largestSequence < count) { largestSequence = count + 1; count = 0; } } } return Math.max(largestSequence, count); }


Y aquí está la respuesta final que superó todos mis ejemplos extraños. Gracias Gulam

 let sequenceContinued = false; let count = 0; let sequences = []; for (let i = 0; i < array.length; i++) { const item = array[i]; if (item === false && sequenceContinued === true) { sequenceContinued = false; sequences.push(count); count = 0; continue; } if (item === true) { sequenceContinued = true; count++; } if (i === array.length - 1 && item === true) { sequences.push(count); } } const longestCount = sequences.length ? Math.max(...sequences) : 0;
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

 const array = [ true, false, false, false, true, true, false, true, true, true, false, true, true, true, true ]; let sequenceContinued = false; let count = 0; let sequences = []; for (let i = 0; i < array.length; i++) { const item = array[i]; if (item === false && sequenceContinued === true) { sequenceContinued = false; sequences.push(count); count = 0; continue; } if (item === true) { sequenceContinued = true; count++; } if (i === array.length - 1 && item === true) { sequences.push(count); } } const longestCount = sequences.length ? Math.max(...sequences) : 0; console.log(longestCount);

about 4 years ago · Juan Pablo Isaza Relatório

0

 function sol(sequence) { let count = 1; let largestSequence = 0; for (let i = 0; i < sequence.length; i++) { if (sequence[i] == true) { if (sequence[i] == sequence[i + 1]) { count++; } } else { if (largestSequence < count) { largestSequence = count; count = 1; } } } return Math.max(largestSequence, count); } var arr = [true, false, true, true, true, true, true]; var solution = sol(arr); console.log(solution);

Puede crear una variable separada 'largestSequence' y cada vez que se encuentre un valor falso, almacenará el valor de recuento en la mayor secuencia.

Al final, se devuelve el máximo de las dos variables: secuencia más grande y recuento porque puede suceder que la secuencia más grande de verdaderos no termine con un falso como [verdadero, falso, verdadero, verdadero, verdadero, verdadero, verdadero].

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