🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
Escreva um programa que verifica se todos os tipos de colchetes estão balanceados na linha.
Uma linha que pode conter qualquer caractere, incluindo três tipos de colchetes: (), {}, [].
Um símbolo: +, se todos os tipos de colchetes na linha estiverem balanceados, e - caso contrário.
{[() ()]}
+
def is_balanced(text):
"""
Проверяет, сбалансированы ли скобки в строке.
Поддерживаемые типы скобок: (), [], {}.
"""
# Стек для хранения открывающих скобок
stack = []
# Словарь для сопоставления открывающих и закрывающих скобок
brackets_map = {
"(": ")",
"[": "]",
"{": "}"
}
# Множество открывающих скобок для быстрой проверки
opening_brackets = set(brackets_map.keys())
# Множество закрывающих скобок для быстрой проверки
closing_brackets = set(brackets_map.values())
for char in text:
if char in opening_brackets:
# Если символ - открывающая скобка, добавляем её в стек
stack.append(char)
elif char in closing_brackets:
# Если символ - закрывающая скобка
if not stack:
# Если стек пуст, значит для закрывающей скобки нет пары
return False
# Берем последнюю открывающую скобку из стека
last_open_bracket = stack.pop()
# Проверяем, соответствует ли она текущей закрывающей
if brackets_map[last_open_bracket] != char:
return False
# Если после прохода по всей строке стек пуст - все скобки закрыты правильно
return len(stack) == 0
# Основная часть программы
input_string = input()
if is_balanced(input_string):
print("+")
else:
print("-")
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...