Правильная скобочная последовательность
Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа должна определить, является ли данная скобочная последовательность правильной.
Пустая последовательность является правильной. Если A правильная, то последовательности (A), [A], {A} правильные. Если A и B правильные последовательности, то последовательность AB правильная.
Входные данные
В единственной строке записана скобочная последовательность, содержащая не более 100000 скобок.
Выходные данные
Если данная скобочная последовательность правильная, то программа должна вывести строку yes, иначе — строку no.
Примеры
Ввод
Вывод
([])
yes
{)
no

23 Июн 2020 в 19:42
490 +1
0
Ответы
1
def is_valid(sequence):
stack = []
brackets = {'(': ')', '[': ']', '{': '}'}
for char in sequence:
if char in brackets.keys():
stack.append(char)
elif char in brackets.values():
if not stack or brackets[stack.pop()] != char:
return "no"
if stack:
return "no"
return "yes"
sequence = input()
print(is_valid(sequence))
18 Апр 2024 в 10:53
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир