En el hospital unas de las maquinas empezó a fallar y lanzan un error por pantalla, debemos identificar cuáles tienen un patron de inicio y cierre: // Necesitamos que determines si el error esta balanceado en cuanto a paréntesis, corchetes y llaves. // La función debe devolver true si los paréntesis, corchetes y llaves están balanceados y false en caso contrario. // Se considera que los paréntesis, corchetes y llaves están balanceados si para cada uno de estos símbolos de apertura hay un símbolo de cierre correspondiente y los símbolos están correctamente anidados.
def balance_check(s): if len(s)%2!=0: return False opening = set('([{') matches = set([ ('(',')'), ('[',']'), ('{','}') ]) stack = [] for paren in s: if paren in opening: stack.append(paren) else: if len(stack) == 0: return False last_open = stack.pop() if (last_open,paren) not in matches: return False return len(stack) == 0 balance_check('[]') balance_check('[](){([[[]]])}') balance_check('()(){]}') balance_check('[]{()')