Рассмотрим непустую строку правильно сбалансированных скобок:
(()(()())()((())))(())
Мы можем представить, что каждая пара скобок представляет собой кольцо в свернутой телескопической конструкции . Итак, давайте расширим телескоп:
( )( )
()( )()( ) ()
()() ( )
()
Другой способ взглянуть на это заключается в том, что скобки на глубине n перемещаются в строку n , сохраняя при этом их горизонтальное положение.
Ваша задача - взять такую строку сбалансированных скобок и создать расширенную версию.
Вы можете написать программу или функцию, используя ввод через STDIN (или ближайший эквивалент), аргумент командной строки или параметр функции и производя вывод через STDOUT (или ближайший эквивалент), возвращаемое значение или параметр функции (out).
Вы можете предположить, что входная строка верна, то есть содержит только круглые скобки, которые правильно сбалансированы.
Вы можете печатать завершающие пробелы в каждой строке, но не больше начальных пробелов, чем необходимо. Всего строки не должны быть длиннее, чем удвоенная длина входной строки. При желании вы можете распечатать один завершающий символ новой строки.
Примеры
В дополнение к приведенному выше примеру, вот еще несколько тестовых случаев (вход и выход разделены пустой строкой).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Связанные проблемы:
- Топографические строки , которые просят вас произвести то, что по сути является дополнением к выходным данным в этой задаче.
- Code Explanation Formatter , широкое обобщение идей этой задачи, недавно опубликованное PhiNotPi. (Фактически, оригинальное описание PhiNotPi его идеи было тем, что вдохновило этот вызов.)
Leaderboards
Да, в этом приняли участие довольно много, так что вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes