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

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

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 Relatório

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 Relatório

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 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