Top.Mail.Ru
Ответы

Помогите решить задачу пожалуйста

Дана последовательность, состоящая из открывающихся и закрывающихся круглых, квадратных и фигурных скобок.

Требуется написать программу, которая определит возможность добавления в эту последовательность цифр и знаков арифметических действий таким образом, чтобы получилось правильное скобочное выражение.

Входные данные
Входной файл INPUT.TXT содержит не менее 1 и не более 10 строк. В каждой строке записана одна последовательность скобок. Длина последовательности от 1 до 255 символов.

Выходные данные
В выходной файл OUTPUT.TXT выведите слитно символы 0 или 1. Их общее количество равно количеству введенных строк. Для каждой строки выводится 0, если из нее может получиться правильное скобочное выражение, и 1 иначе.

Пример
№ INPUT.TXT OUTPUT.TXT
1 ([{}])
([{ 01

По дате
По рейтингу
Аватар пользователя
Мастер
7мес
1234567891011121314151617181920
 def is_correct(s): 
    stack = [] 
    for c in s: 
        if c in '([{': 
            stack.append(c) 
        else: 
            if not stack or stack.pop() != {'}': '}', ']': ']', ')': '('}[c]: 
                return False 
    return not stack 
 
# Чтение входных данных 
with open('INPUT.TXT', 'r') as f: 
    expressions = f.readlines() 
 
# Обработка и запись результатов 
with open('OUTPUT.TXT', 'w') as f: 
    for expr in expressions: 
        f.write('0' if is_correct(expr.strip()) else '1')