Las puertas sin cerrar
- O(n) · Media
- Plan completo
- Python
- JavaScript
- textos
- ciclos
Enunciado
La mansión Albor amaneció en silencio. Durante la noche, alguien anotó en la bitácora un ( cada vez que se abría una puerta y un ) cada vez que se cerraba, pero se le escaparon algunas anotaciones.
La bitácora tiene sentido si cada ) cierra un ( que vino antes y al final no queda ninguno abierto. Escribe una función que reciba la bitácora (un texto hecho solo de ( y ), que puede venir vacío) y regrese, como entero, el menor número de caracteres que hay que agregar para que tenga sentido.
Con ())( regresas 2: el segundo ) no tiene qué cerrar y le falta un ( antes, y el último ( se queda abierto y le falta un ). Un ) suelto no se arregla con un ( que viene después: )( también da 2. Una bitácora vacía ya tiene sentido: regresas 0.
Ejemplos
Queda una abierta
"(()" → 1
Todo en orden
"()()" → 0
Cierra antes de abrir
")(" → 2
Bitácora vacía
"" → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def faltantes(bitacora):
passJavaScript
function faltantes(bitacora) {
}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)
- Las series de olaslistas · ciclos · condicionales
- Los átomos de la fórmulatextos · ciclos
- Los cruces del péndulolistas · ciclos · comparaciones
- Los menos trasbordosdiccionarios · conjuntos · ciclos
- Los renglones necesariostextos · ciclos · condicionales
- Nivel por experiencialistas · ciclos · condicionales