Overview
Comprueba si una cadena de paréntesis, corchetes y llaves está correctamente balanceada usando una pila.
Analogy
Como verificar que todas las puertas abiertas se cierran: cada vez que abres una, la añades a la pila; al cerrar, compruebas que coincide con la última abierta.
Step-by-step
- Itera cada carácter en la cadena
- Si es de apertura (([{): empuja a la pila
- Si es de cierre: comprueba que coincide con el tope de la pila
- Al final, la pila debe estar vacía
Visual
"({[]})" → pila: ( → ({
→ ({[ → ({ → ( → vacía → True
"([)]" → ( → ([ → ) ≠ [ → False
Common mistakes
- Olvidar comprobar si la pila está vacía antes de hacer pop
- No verificar que la pila esté vacía al final
Practice questions
- Extiende para contar paréntesis inválidos que deben eliminarse
- Encuentra la longitud de la subcadena de paréntesis válida más larga
Time
O(n) — se procesa cada carácter una vez
Space
O(n) — en el peor caso la pila tiene todos los aperturas