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

230
Views
Cómo obtener palabras de una matriz cuyo carácter aparece exactamente dos veces

Tengo una matriz que contiene cadenas. Tengo que leer las palabras una por una y generar palabras que tengan cualquier carácter que aparezca exactamente dos veces. Pero mi código también muestra 3 o más caracteres iguales. ¿Cómo puedo generar las palabras cuyo único carácter aparece dos veces? Por ejemplo, no mostrar: "aaaa" o "aaab"

 const words = [ "asdf", "fdas", "asds", "d fm", "dfaa", "aaaa", "aabb", "aaabb" ]; function checkString(text,index){ if((text.length - index) == 0 ){ //stop condition return false; }else{ return checkString(text,index + 1) || text.substr(0, index).indexOf(text[index])!=-1; } } // example Data to test for(var idx in words){ var txt = words[idx]; if(checkString(txt,0)) { console.log(txt); } }

 const words = [ "asdf", "fdas", "asds", "d fm", "dfaa", "aaaa", "aabb", "aaabb" ]; /* Output have to be : asds dfaa aabb aaabb */
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

 const words = [ "asdf", "fdas", "asds", "d fm", "dfaa", "aaaa", "aabb", "aaabb" ]; function checkString(text) { //create a map to store the frequency of characters let map = new Map(); for(let ch of text){ if(map.has(ch)){ map.set(ch, map.get(ch)+1); }else{ map.set(ch, 1); } } //now check if frequency of any character is equal to 2 return [...map.values()].some(x => x == 2); } // example Data to test for (let txt of words) { if (checkString(txt)) { console.log(txt); } }

about 4 years ago · Juan Pablo Isaza Report

0

Puede crear un objeto que asigne letras en su cadena de entrada a sus ocurrencias en él, luego filtre las letras en función de si aparecen dos veces:

 const checkString = (inputString) => { // Build an empty object const occurrences = {}; for (let char of inputString) { // For each character in the input string, add one to its occurrence count // If it has never appeared until now, occurrences[char] + 1 will evaluate // to NaN, and Nan || 1 is 1 occurrences[char] = occurrences[char] + 1 || 1; } // Get the characters appearing in the string const charsInInputString = Object.keys(occurrences); // Extract only the characters appearing exactly twice const charsAppearingTwice = charsInInputString.filter( (char) => occurrences[char] === 2 ); // Return true if there is at least one such character return charsAppearingTwice.length > 0; };

Su matriz final de palabras correctas sería entonces words.filter(checkString) .

Si desea formatear las palabras para que se muestren como una sola cadena , con un separador de espacios, puede usar el método .join :

 const checkedWords = words.filter(checkString).join(" "); // = asds dfaa aabb aaabb
about 4 years ago · Juan Pablo Isaza Report

0

Una mejor manera de hacerlo es escribir una función que tome una cadena y cuente cuántos de cada carácter contiene, y luego verifique si hay un carácter que aparece exactamente dos veces.

Algo en la línea de

 function checkString(text){ const charAppearances = {}; text.split('').forEach( character => { charAppearances[character] = (charAppearances[character] || 0) + 1 }) return Object.values(charAppearances).includes(2); }

El propósito de charAppearances es contar cuántas veces aparece un carácter, por ejemplo para la cadena 'asdf' será {a: 1, s: 1, d:1, f:1}

La sección forEach itera sobre los caracteres de la cadena y actualiza el recuento del carácter actual ( charAppearances[character] = (charAppearances[character] || 0) + 1 significa "Si el character existe en charAppearances , agréguele 1, de lo contrario sume 1 a 0, lo que dará como resultado 1)

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!