Задачи
Компилятор
Компилятор
Одним из принципов работы многих компиляторов является проверка того, что скобки в заданном коде открываются и закрываются в правильном порядке. Чтобы проверить это в заданном фрагменте кода, нужно сначала удалить символы, отличные от скобок, то есть получить строку, состоящую только из скобок. Тогда правильная последовательность скобок этой строки можно проверить с помощью дата-структуры “стек”.
\par
Например:
При данной строке "for()\{inta$[]$if()\{\}else\{\}\}", ответом будет данная строка "()\{$[]$()\{\}\{\}\}".
Для простоты строка может содержать только строчные и прописные латинские буквы, цифры от $0$ до $9$ и ()$[]$\{\} - $6$ видов скобок.
\subsection{\bfseries{Входные данные}}
Даётся только строка ($string$) $S$ ($2 \leq |S| \leq 1000$, здесь |$S$|, обозначает длину строки $S$, $S$ состоит только из строчных и прописных латинские букв, цифры от $0$ до $9$ и ()$[]$\{\} - 6 видов скобок ).
\subsection{\bfseries{Выходные данные}}
При удалении символов, отличных от скобок, в выходной строке укажите оставшуюся строку.
\subsection{\bfseries{Оценивание}}
В этом задании баллы начисляются за каждый правильный тест. Максимальный балл - $100$.
Примеры, не входят в системные тесты.
\subsection{\bfseries{Объяснение примеров}}
Первый пример был объяснен навверху в условии. \par
В третьем примере из-за отсутсвия скобок ответ пустой.
Входные данные #1
for(){inta[]if(){}else{}}
Выходные данные #1
(){[](){}{}}
Входные данные #2
intmain({)}
Выходные данные #2
({)}
Входные данные #3
long
Выходные данные #3