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!
sasla başka parantez içermemesi gerektiğini belirtmeye değer mi? Örneğin [Foo[Bar]3]2, dizeyi Foo[Bar3 kez genişleterek çözmeyi denemek geçersiz bir duruma yol Foo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2? Sen almak abbcddeabbcddegenişleterek bve dilk ama ababcdbcdedbabcdbcdedegenişleterek a[bve d]2eilk.