Розглянемо не порожній рядок правильно збалансованих дужок:
(()(()())()((())))(())
Можна уявити, що кожна пара дужок являє собою кільце в згорнутій телескопічній конструкції . Тож давайте продовжимо телескоп:
( )( )
()( )()( ) ()
()() ( )
()
Ще один спосіб поглянути на це - круглі дужки на глибині n переміщуються до рядка n , зберігаючи їх горизонтальне положення.
Ваше завдання - взяти такий рядок збалансованих дужок і створити розширену версію.
Ви можете записати програму або функцію, взявши введення через STDIN (або найближчий еквівалент), аргумент командного рядка або параметр функції та виробляючи вихід через STDOUT (або найближчий еквівалент), значення повернення або функцію (out).
Ви можете припустити, що вхідний рядок є дійсним, тобто складається лише з дужок, які правильно врівноважені.
Ви можете друкувати пробіли у кожному рядку, але не більше провідної кількості, ніж потрібно. Загалом рядки не повинні перевищувати вдвічі більше довжини вхідного рядка. Ви можете необов'язково надрукувати один зворотний рядок.
Приклади
Окрім вищенаведеного прикладу, тут є ще кілька тестових випадків (введення та вихід розділені порожнім рядком).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Пов'язані проблеми:
- Топографічні рядки , в яких ви просите створити те, що по суті є доповненням результату в цьому виклику.
- Code Explanation Formatter - широке узагальнення ідей у цьому виклику, опубліковане нещодавно PhiNotPi. (Насправді, оригінальним описом його ідеї було те, що надихнуло цей виклик.)
Табло лідерів
Так, у цьому було багато участі, тому ось фрагмент стека для створення як звичайного таблицю лідерів, так і огляд переможців за мовою.
Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:
# Language Name, N bytes
де N
розмір вашого подання. Якщо ви покращите свій рахунок, ви можете зберегти старі бали у заголовку, прокресливши їх. Наприклад:
# Ruby, <s>104</s> <s>101</s> 96 bytes