Saltar al contenido

¿Están balanceados?

Enunciado

Los editores de código avisan cuando a una línea le falta cerrar un paréntesis. Vas a escribir esa revisión.

Escribe una función que reciba un texto y regrese verdadero si cada paréntesis, corchete y llave que abre tiene el suyo que cierra, en el orden correcto.

Las reglas: "([{}])" está balanceado y "([)]" no, porque el paréntesis cierra antes de que el corchete termine. Lo que no sea uno de esos seis caracteres no cuenta, así que "(2 + 3)" está balanceado. Un texto vacío no tiene nada abierto, así que con él regresas verdadero.

Una pista: guarda en una lista lo que vas abriendo y quita el último cada vez que algo cierra bien.

Ejemplos

  • Un par

    "[]" → true

  • Texto vacío

    "" → true

  • Sin cerrar

    "[[" → false

  • Al revés

    "}{" → false

  • Anidados

    "{[]}" → true

  • Cierra el que no era

    "{[])" → false

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def esta_balanceado(texto):
    pass

JavaScript

function estaBalanceado(texto) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n)

Ver todos los retos →