La tua sfida è espandere alcune parentesi nell'input di un programma come mostrato:
- Trova una stringa s tra due parentesi corrispondenti
[e], con una singola cifra n dopo la parentesi chiusa. - Rimuovere le staffe.
- Sostituisci s con se stesso ripetuto n volte. (Se n è 0, rimuovi semplicemente s .)
- Andare al passaggio 1 fino a quando non ci sono più parentesi corrispondenti nell'input.
Ulteriori regole e chiarimenti:
- Prenderai input e fornirai output con qualsiasi mezzo consentito.
- È consentita una nuova riga finale nell'output.
- È sufficiente gestire ASCII stampabile nell'input.
- Si può presumere che tutte le parentesi corrispondano, ovvero non si riceverà mai l'input
[]]]]o[[[[]. - Si può presumere che ogni parentesi di chiusura
]abbia una cifra dopo di essa.
Casi test:
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
Poiché si tratta di code-golf , vince la risposta più breve in ogni lingua. In bocca al lupo!
snon dovrebbe mai contenere altre parentesi? Ad esempio, tentare di risolvere [Foo[Bar]3]2espandendo la stringa Foo[Bar3 volte comporterebbe uno stato non validoFoo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2? Si ottiene abbcddeabbcddeespandendo be dprima, ma ababcdbcdedbabcdbcdedeespandendo a[be d]2eprima.