¿Están balanceados?
- O(n) · Media
- Plan completo
- Python
- JavaScript
- textos
- listas
- ciclos
- booleanos
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):
passJavaScript
function estaBalanceado(texto) {
}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.