Rozważ niepusty ciąg poprawnie zrównoważonych nawiasów:
(()(()())()((())))(())
Możemy sobie wyobrazić, że każda para nawiasów reprezentuje pierścień w zwiniętej konstrukcji teleskopowej . Rozszerzmy więc teleskop:
( )( )
()( )()( ) ()
()() ( )
()
Innym sposobem na to jest to, że nawiasy na głębokości n są przenoszone do linii n , przy jednoczesnym zachowaniu ich pozycji poziomej.
Twoim zadaniem jest wziąć taki ciąg zrównoważonych nawiasów i stworzyć rozszerzoną wersję.
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższy odpowiednik), argument wiersza poleceń lub parametr funkcji i generując dane wyjściowe przez STDOUT (lub najbliższy odpowiednik), wartość zwracaną lub parametr funkcji (wyjściowej).
Możesz założyć, że łańcuch wejściowy jest prawidłowy, tzn. Składa się tylko z nawiasów, które są odpowiednio zrównoważone.
Możesz drukować końcowe spacje w każdej linii, ale nie więcej spacji wiodących niż to konieczne. Łącznie wiersze nie mogą być dłuższe niż dwukrotność długości ciągu wejściowego. Możesz opcjonalnie wydrukować jedną końcową linię nowego wiersza.
Przykłady
Oprócz powyższego przykładu, oto jeszcze kilka przypadków testowych (wejście i wyjście są oddzielone pustą linią).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Powiązane wyzwania:
- Ciągi topograficzne , które proszą cię o stworzenie tego, co jest zasadniczo uzupełnieniem wyników w tym wyzwaniu.
- Code Explanation Formatter , szerokie uogólnienie pomysłów w tym wyzwaniu, opublikowane niedawno przez PhiNotPi. (W rzeczywistości oryginalny opis PhiNotPi jego pomysłu był tym, co zainspirowało to wyzwanie).
Liderów
Huh, to miało dość duży udział, więc oto fragment kodu, który generuje zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes