Betrachten Sie eine nicht leere Zeichenfolge mit korrekt ausgeglichenen Klammern:
(()(()())()((())))(())
Wir können uns vorstellen, dass jedes Klammernpaar einen Ring in einer zusammengeklappten Teleskopkonstruktion darstellt . Verlängern wir also das Teleskop:
( )( )
()( )()( ) ()
()() ( )
()
Eine andere Betrachtungsweise ist, dass die Klammern in der Tiefe n auf die Linie n verschoben werden , während ihre horizontale Position beibehalten wird.
Ihre Aufgabe ist es, eine solche Folge ausgewogener Klammern zu verwenden und die erweiterte Version zu erstellen.
Sie können ein Programm oder eine Funktion schreiben, indem Sie Eingaben über STDIN (oder das nächste Äquivalent), ein Befehlszeilenargument oder einen Funktionsparameter vornehmen und Ausgaben über STDOUT (oder das nächste Äquivalent), einen Rückgabewert oder einen Funktionsparameter (out) erzeugen.
Sie können davon ausgehen, dass die Eingabezeichenfolge gültig ist, dh nur aus Klammern besteht, die korrekt ausgeglichen sind.
Sie dürfen in jeder Zeile nachgestellte Leerzeichen drucken, jedoch nicht mehr führende Leerzeichen als erforderlich. Insgesamt dürfen die Zeilen nicht länger als die doppelte Länge der Eingabezeichenfolge sein. Sie können optional eine einzelne nachgestellte Zeile drucken.
Beispiele
Neben dem obigen Beispiel gibt es hier noch einige Testfälle (Ein- und Ausgabe sind durch eine Leerzeile getrennt).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Verwandte Herausforderungen:
- Topographic Strings , bei dem Sie gefragt werden, was im Wesentlichen die Ergänzung der Ausgabe in dieser Herausforderung ist.
- Code Explanation Formatter , eine breite Verallgemeinerung der Ideen in dieser Herausforderung, wurde kürzlich von PhiNotPi veröffentlicht. (Tatsächlich hat PhiNotPis ursprüngliche Beschreibung seiner Idee diese Herausforderung inspiriert.)
Bestenlisten
Huh, das hat eine Menge Beteiligung gebracht, also hier ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes