Предмет: Информатика,
автор: foxygamemod
Назовём скобочную последовательность, состоящую из трёх видов скобок (круглых, квадратных или фигурных) , если она может быть построена по следующим правилам:
Пустая последовательность является правильной.
Если
A
— правильная скобочная последовательность, то
{
A
}
,
[
A
]
и
(
A
)
— правильные скобочные последовательности.
Если
A
и
B
— правильная скобочная последовательность, то
A
B
— правильная скобочная последовательность.
Иначе говоря, правильная скобочная последовательность получается, если мы берём какое-то математическое выражение с корректно расставленными скобками и убираем оттуда всё, кроме скобок.
Вам дана скобочная последовательность длины
N
. Вам разрешено вставлять скобки в любое место последовательности (в начало, в конец и между двумя любыми скобками). Ваша задача — добавить не более
N
скобок так, чтобы последовательность превратилась в правильную.
Разберём три примера к задаче. В первом примере все три скобки добавлены в конец — мы закрываем уже открытые скобки. Во втором примере последовательность и так является правильной. Можно вывести её, можно, к примеру, добавить ещё пару скобок — минимальность ответа не требуется. В третьем примере последовательность правильной не является — скобки закрываются не в том порядке. Можно исправить, например, вставив открывающую квадратную скобку сперели и закрывающую квадратную — перед закрывающей фигурной.
Формат ввода
На вход подаётся непустая строка из не более, чем
1
0
4
символов, состоящая из символов ‘{’, ‘}’, ‘[’, ‘]’, ‘(’ и ‘)’.
Формат вывода
Выведите итоговую строку, получившуюся после вставки скобок и являющуюся правильной скобочной последовательностью. Длина строки не должна превышать удвоенной длины входной строки. Если ответов несколько, выведите любой. Минимизировать длину строки не требуется.
Пример 1
Ввод Вывод
( [ {
( ) [ ] { }
Пример 2
Ввод Вывод
( [ ] )
( ) [ ] [ ] ( )
Пример 3
Ввод Вывод
{ [ } ]
{ } [ ] { } [ ]
Примечания
Решением этой задачи должна являться программа на одном из представленных в системе языков программирования, решающая данную задачу. Программа должна считывать данные со стандартного ввода (клавиатуры) и выводить на стандартный вывод (монитор). Никаких дополнительных строк или символов выводить не разрешается.
В qbasic или Паскаль
Ответы
Автор ответа:
10
===== PascalABC.NET =====
begin
var s := ReadlnString;
var t := '';
foreach var c in s do
case c of
'(': t += c + ')';
'[': t += c + ']';
'{': t += c + '}';
')': t += '(' + c;
']': t += '[' + c;
'}': t += '{' + c
end;
Write(t)
end.
Похожие вопросы
Предмет: Геометрия,
автор: vikmel589
Предмет: Математика,
автор: salmanovmaksim496
Предмет: Русский язык,
автор: segizkhanerden
Предмет: Геометрия,
автор: akosoogly
Предмет: Математика,
автор: даша2620