Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

151
Vistas
Cómo verificar todos los soportes coincidentes

Implemente la función verificar (texto) que verifica si los paréntesis dentro del texto están anidados correctamente. Debe considerar tres tipos: (), [], <> y solo estos tipos. Ejemplos:

 verify("---(++++)----") -> 1 verify("") -> 1 verify("before ( middle []) after ") -> 1 verify(") (") -> 0 verify("<( >)") -> 0 verify("( [ <> () ] <> )") -> 1 verify(" ( [)") -> 0

Intenté hacerlo como se muestra a continuación, pero el entrevistador me dijo que hubo un error y me está dando una segunda oportunidad.

 function verify(text) { const stack = []; for (const c of text) { if (c === '(') stack.unshift(')') else if (c === '[') stack.unshift(']') else if (c === '<') stack.unshift('>') else if (c === stack[0]) stack.shift() else if (c === ')' || c === ']' || c === '>') return 0 } return 1 } const test_inputs = ["---(++++)----", "", "before ( middle []) after ", ") (", "<( >)", "( [ <> () ] <> )", " ( [)"] for (const i in test_inputs) { console.log(verify(i)) }

La salida es:

 1 1 1 1 1 1 1
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Lo único malo con su código es que usó int el bucle for in lugar de of .
O se olvidó de verify(test_inputs[i]) en lugar de verify(i) .

Arreglando eso, produce el resultado correcto:

 function verify(text) { const stack = []; for (const c of text) { if (c === '(') stack.unshift(')') else if (c === '[') stack.unshift(']') else if (c === '<') stack.unshift('>') else if (c === stack[0]) stack.shift() else if (c === ')' || c === ']' || c === '>') return 0 } return 1 } const test_inputs = [ "---(++++)----", "", "before ( middle []) after ", ") (", "<( >)", "( [ <> () ] <> )", " ( [)" ] for (const s of test_inputs) { console.log(verify(s), s) }

about 4 years ago · Santiago Trujillo Denunciar

0

Podemos usar las funciones pop y push de Array. Cuando nos encontramos con los caracteres '(', '[', '<', empujamos a la pila. Por otro lado, cuando encontramos ')', ']', '>', sacamos el último elemento de la pila. . Si no podemos encontrar los equivalentes de estos caracteres, determinamos que la cadena no es válida. Finalmente, si no quedan elementos en la pila, significa que la cadena es válida.

 function verify(text) { let stack = []; for (const c of text) { if (c === '(' || c == '[' || c == '<') { stack.push(c); } else if (c === ')' || c == ']' || c == '>') { if (stack.length == 0) { return 0; } const popValue = stack.pop(); if (c === ')' && popValue != '(') { return 0; } else if (c === ']' && popValue != '[') { return 0; } else if (c === '>' && popValue != '<') { return 0; } } } if (stack.length > 0) { return 0; } return 1; }

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda