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

147
Visualizações
Cuerda dividida con el corchete exterior en la cuerda

Quiero dividir una cadena

(B+(([A/C]+D)*E))+([(([A/F]+G)/H])*I)-([A/J]+K*L)

(es decir, dividir la cadena delimitada por operadores fuera del paréntesis exterior)

a una matriz como esta

 array = [ "(B+(([A/C]+D)*E))", "([(([A/F]+G)/H])*I)", "([A/J]+K*L)" ];

Intenté usar split() pero fallé.

Gracias.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Creo que el concepto de pila resolverá este problema.

 function solve(str) { const operators = ['+', '-', '/', '*']; const result = []; let stack = 0; let current = ''; for (let i = 0; i < str.length; i++) { current += str[i]; if (str[i] === '(') stack++; else if (str[i] === ')') stack--; if (stack === 0) { if (!operators.includes(current)) { result.push(current); } current = ''; } } return result; } const array = solve('(B+(([A/C]+D)*E))+([(([A/F]+G)/H])*I)-([A/J]+K*L)'); console.log(array); // [ '(B+(([A/C]+D)*E))', '([(([A/F]+G)/H])*I)', '([A/J]+K*L)' ]
about 4 years ago · Juan Pablo Isaza Relatório

0

 const str = '(B+(([A/C]+D)*E))+([(([A/F]+G)/H])*I)-([A/J]+K*L)'; const splitByBrackets = (str) => { const operators = ['+', '-', '/', '*']; const stack = []; const result = []; for (let i = 0; i < str.length; i++) { const char = str[i]; if (char === '(') { stack.push(char); } if (char === ')') { stack.pop(); } if (operators.includes(char) && stack.length === 0) { result.push(str.slice(0, i)); str = str.slice(i + 1); i = -1; } } result.push(str); return result; }; console.log(splitByBrackets(str));

about 4 years ago · Juan Pablo Isaza Relatório

0

Otra forma de analizar una cadena es reemplazar todas las entradas de caracteres con un separador universal y separar la cadena con este separador;

 const str = '(B+(([A/C]+D)*E))+([(([A/F]+G)/H])*I)-([A/J]+K*L)'; const operators = ['+', '-', '/', '*']; const sep= '|||'; const result = operators .reduce((acc, sign) => acc.replaceAll(`)${sign}(`, sep), str) .split(sep); console.log(result);
 .as-console-wrapper{min-height: 100%!important; top: 0}

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