Ihre Herausforderung besteht darin, einige Klammern in der Eingabe eines Programms wie folgt zu erweitern:
- Suchen Sie eine Zeichenfolge s zwischen zwei übereinstimmenden Klammern
[
und]
mit einer einzelnen Ziffer n nach der schließenden Klammer. - Entfernen Sie die Halterungen.
- Ersetzen Sie s durch sich selbst n- mal wiederholt . (Wenn n 0 ist, entferne einfach s .)
- Fahren Sie mit Schritt 1 fort, bis die Eingabe keine übereinstimmenden Klammern mehr enthält.
Zusätzliche Regeln und Erläuterungen:
- Sie nehmen Input und geben Output mit allen erlaubten Mitteln.
- Ein Zeilenumbruch in der Ausgabe ist zulässig.
- Sie müssen nur druckbares ASCII in der Eingabe behandeln.
- Sie können davon ausgehen, dass alle Klammern übereinstimmen, dh Sie erhalten niemals die Eingabe
[]]]]
oder[[[[]
. - Sie können davon ausgehen, dass
]
hinter jeder schließenden Klammer eine Ziffer steht.
Testfälle:
Input -> Output
[Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar
[one]1[two]2[three]3 -> onetwotwothreethreethree
[three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone
[!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*(
[[foo bar baz]1]1 -> foo bar baz
[only once]12 -> only once2
[only twice]23456789 -> only twiceonly twice3456789
[remove me!]0 ->
before [in ]2after -> before in in after
Da dies Codegolf ist , gewinnt die kürzeste Antwort in jeder Sprache. Viel Glück!
s
niemals andere Klammern enthalten sollte? Der Versuch, eine Lösung [Foo[Bar]3]2
durch Foo[Bar
Foo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? Sie erhalten, abbcddeabbcdde
indem Sie sich ausdehnen b
und d
zuerst, aber, ababcdbcdedbabcdbcdede
indem Sie sich ausdehnen a[b
und d]2e
zuerst.