Valid Parentheses
Una cadena de corchetes está equilibrada cuando cada corchete de apertura se cierra con un corchete del mismo tipo y los pares quedan uno dentro de otro en lugar de superponerse. Hay tres tipos: paréntesis (), corchetes [] y llaves {}.
Por ejemplo, {[()()]} está equilibrada: cada par se cierra dentro del par que lo contiene. Pero {(}) no lo está: la llave se cierra mientras el paréntesis que se abrió después sigue esperando. Una cadena como (( tampoco está equilibrada, porque nada cierra los dos signos de apertura.
Escribe una función llamada isValid que reciba una cadena s formada únicamente por los caracteres (, ), [, ], { y }, y devuelva true cuando sus paréntesis estén equilibrados y false en caso contrario.
Equilibrados significa que cada paréntesis de cierre coincide con el paréntesis de apertura más reciente que sigue abierto, ambos son del mismo tipo y no queda ningún paréntesis de apertura sin cerrar al final.
Restricciones: 1 ≤ s.length ≤ 10^4.
Función
- arg1string
- Devuelveboolean
Ejemplos
- Entrada
- arg1 = "[]{}()"
- Salida
- true
- Entrada
- arg1 = "{[()()]}"
- Salida
- true
- Entrada
- arg1 = "{(})"
- Salida
- false
+13 pruebas ocultas al enviar
Pistas
Ábrelas de una en una. Cada una revela un poco más.
Lee la cadena de izquierda a derecha. Cuando aparece un corchete de cierre, ¿qué corchete de apertura puede cerrar?
Solo puede cerrar el corchete de apertura que se abrió más recientemente y sigue abierto. El último en abrirse es el primero en cerrarse: ese es exactamente el orden que mantiene una pila.
Apila cada corchete de apertura. Al encontrar un corchete de cierre, la pila no debe estar vacía y el elemento superior debe ser del mismo tipo; sácalo de la pila y continúa. Cuando termine la cadena, estará equilibrada solo si la pila está vacía.
Pronto habrá una explicación completa de este problema.
Problemas similares
Problemas que usan las mismas ideas. Resolver dos o tres es lo que fija un patrón.
Python
def isValid(s):
# Escribe el código aquíCaso 1
Caso 2
Caso 3
Entrada
arg1 = "[]{}()"Esperado
true