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