Buradaki zorluk, bir programın girişindeki bazı parantezleri gösterildiği gibi genişletmektir:
- Bir dize bul lar iki eşleşen parantez
[
ve]
tek haneli bir ile, n ayraç sonra. - Destekleri çıkarın.
- N defalarca tekrarlanan s ile değiştirin . ( N 0 ise, basitçe s'yi kaldırın .)
- Girişte eşleşen parantez bulunmayana kadar adım 1'e gidin.
Ek kurallar ve açıklamalar:
- İzin verilen herhangi bir yöntemle girdi alacak ve çıktı vereceksiniz.
- Çıktıdaki takip eden yeni satıra izin verilir.
- Girişte yalnızca yazdırılabilir ASCII'yi kullanmanız gerekir.
- Sen girişi alabilir asla yani tüm parantez maç varsayabiliriz
[]]]]
ya[[[[]
. - Her kapatma braketinin
]
ondan bir rakamı olduğunu varsayabilirsiniz .
Test durumları:
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
Bu kod golf olduğu için, her dilde en kısa cevap kazanır. İyi şanslar!
s
asla başka parantez içermemesi gerektiğini belirtmeye değer mi? Örneğin [Foo[Bar]3]2
, dizeyi Foo[Bar
3 kez genişleterek çözmeyi denemek geçersiz bir duruma yol Foo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? Sen almak abbcddeabbcdde
genişleterek b
ve d
ilk ama ababcdbcdedbabcdbcdede
genişleterek a[b
ve d]2e
ilk.