Saltar al contenido

Las puertas sin cerrar

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):
    pass

JavaScript

function faltantes(bitacora) {
}
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 →