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

228
Views
Verifique si una cadena es un isograma con Javascript - revisión lógica

Mi intento de resolver si una cadena es un isograma está a continuación:
No puedo averiguar por qué mi código no funciona. Por favor, ¿alguien puede ayudar a explicar por qué?
Un isograma no tiene letras que se repitan consecutiva o no consecutivamente.
Intenté: 1- convertir la cadena a minúsculas y convertirla en una matriz. 2- cree un control if para devolver verdadero si la cadena está vacía. 3- ejecute un bucle for a través de la matriz y compare el primer índice y el último índice de cada letra. Si la primera instancia y la última instancia no son iguales, entonces la cadena no puede ser un isograma y, por lo tanto, devolver falso.

 function isIsogram(str){ str = str.toLowerCase(); let text = str.split(""); if (text.length === 0) { return true; } for (let i = 0; i < text.length; i++) { if ( text.indexOf(text[i]) !== text.lastIndexOf(text[i]) ){ return false; } else { return true; } } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Un simple cambio debería resolver el problema. Su función existente solo considera el primer carácter. Esto luego omitirá cualquier carácter repetido más adelante en la cadena, por ejemplo, devuelve verdadero para 'abb', lo cual es incorrecto, por supuesto.

Es mejor continuar hasta el final del ciclo y solo devolver verdadero cuando estamos seguros de que no hay caracteres repetidos.

 function isIsogram(str){ str = str.toLowerCase(); let text = str.split(""); if (text.length === 0) { return true; } for (let i = 0; i < text.length; i++) { if (text.indexOf(text[i]) !== text.lastIndexOf(text[i]) ){ return false; } } return true; } const testInputs = ['abb','aab','aba','abc','abcdz']; testInputs.forEach(input => console.log(`isIsogram(${input}): ${isIsogram(input)}`));

Aquí hay otra implementación, usando Set() para contar caracteres únicos. Si la cadena no tiene caracteres repetidos, entonces el número de caracteres únicos proporcionado por el tamaño establecido debe ser el mismo que la longitud de la cadena de entrada.

 function isIsogram(str){ return new Set(str).size === str.length; } const testInputs = ['abb','aab','aba','abc', 'abcdz']; testInputs.forEach(input => console.log(`isIsogram(${input}): ${isIsogram(input)}`));

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!