Alternierend ist der Vorgang, bei dem eine Zeichenfolge in abwechselnde Klammern gesetzt wird. Hier sehen Sie, wie Sie eine Zeichenfolge abwechseln .
Nehmen Sie für eine Zeichenfolge der Länge N die mittleren N Zeichen und umgeben Sie sie in Klammern. Wenn also unsere Zeichenfolge
Hello world!
(12 Zeichen) war, werden wir mit enden(Hello world!)
Nehmen Sie dann die verbleibenden mittleren
n-2
Zeichen und umgeben Sie sie in eckigen Klammern. In diesem Fall sind die mittleren 10 Zeichen.ello world
Die nächste Iteration lautet also:(H[ello world]!)
Solange mehr als zwei Zeichen in der Mitte der Zeichenfolge verbleiben, wiederholen Sie die letzten beiden Schritte abwechselnd mit
()
und[]
. Hier sind die letzten Schritte:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
Da bei der letzten Iteration nur noch zwei Zeichen in der Mitte übrig sind, hören wir auf. Unsere letzte Saite ist
(H[e(l[l(o[ w]o)r]l)d]!)
Beachten Sie, wie es zwei Zeichen in den mittleren Klammern gibt. Dies passiert, wenn die Eingabe eine gerade Länge hat. Wenn die Eingabe eine ungerade Länge hätte (zum Beispiel
Hello, world!
mit einem Komma), hätten wir nur ein Zeichen in der Mitte:(H[e(l[l(o[,( )w]o)r]l)d]!)
Für die heutige Herausforderung müssen Sie ein Programm oder eine Funktion schreiben, die eine Zeichenfolge als Eingabe verwendet und diese alterniert, wobei die neue Zeichenfolge ausgegeben wird. Sie können Eingaben und Ausgaben in jedem vernünftigen Format vornehmen, das Sie möchten. Die Eingabe ist immer mindestens ein Zeichen lang und enthält nur druckbares ASCII. Sie können auch davon ausgehen , dass der Eingang nicht jede Klammer oder eckige Klammern enthalten. Für traditionelle Sprachen sollte dies nicht allzu wichtig sein, aber es könnte für einige esoterische Sprachen einfacher sein.
Wie üblich ist dies ein Code-Golf- Wettbewerb. Versuchen Sie daher, die kürzestmögliche Antwort in der Sprache Ihrer Wahl zu geben. Habe Spaß!
Testen Sie IO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) beginnen oder können wir mit Klammern ( []
) beginnen?
()
HelloWorld
.