Birisi bize bir ip verdi, ancak tüm parantez benzeri karakterler normal karakterlere dönüştürüldü ve hangisinin, hatta kaçının olduğunu bilmiyoruz. Tek bildiğimiz, L1,L2,L3,...,LN
farklı türde sol parantezler olsaydı ve R1,R2,R3,...,RN
farklı karşılık gelen sağ parantez türleri olsaydı , hepsi farklıydı (2N farklı parantez karakteri), bir dize, (+ normal dize birleştirme ise):
L1+X+R1
,,L2+X+R2
...,, geçerli bir dizeLN+X+RN
neredeX
,X+Y
, neredeX
veY
geçerli dizeler,Köşeli ayraç karakteri olmayan herhangi bir karakter.
Boş dize
Köşeli parantezleri değiştirmeden önce geçerli bir dize ile başladıklarını biliyoruz ve bunları dizede zaten var olan karakterlere dönüştürmediler. Her braket için de en az bir çift mevcuttu. Hangi karakterlerin orijinal olarak sol ve sağ köşeli parantez çiftleri olduğunu yeniden oluşturabilir misiniz ( verilen koşulları Li
ve Ri
aşağıdaki koşulları bulun )?
Köşeli ayraç olan karakter çiftlerini çıktılar. Örneğin, (){}[]
gerçekten köşeli ayraç karakterleri olsaydı , çıktı alabilirsin, (){}[]
ya {}[]()
da [](){}
, vb. Bir dize için bunu yapmanın birden çok yolu olabilir, yalnızca daha fazla çiftli köşeli parantez atamayacak şekilde bir tane döndürmen gerekir (örneklere bakın). Çıktı dizesinin her zaman eşit uzunlukta olması gerektiğini unutmayın.
Örnekler:
abcc
- c
köşeli ayraç olamaz, çünkü iki kez gerçekleşen başka bir karakter yoktur, ancak ab
köşeli ayraç çifti olabilir, bu yüzden tam olarak çıktı alırsınız ab
.
fffff
- en fazla bir karaktere sahip herhangi bir dize parantez içeremez, bu nedenle boş dize döndürür veya hiçbir şey çıkarmazsınız.
aedbedebdcecdec
- 1 dize, 2 bs, 3 cs, 4 ds ve 5 es olduğu için bu dizede herhangi bir parantez olamaz, bu nedenle parantez olması için iki kez aynı sayıda karakter olmaz.
abcd
- olası atamaları vardır ab
, cd
, abcd
, cdab
, adbc
, bcad
, ac
, ad
, bc
ve bd
, (aynı zamanda hepsi var boş atama, gibi) ama sen geri dönmelidir, böylece en uzun atamaları biri dönmelidir abcd
, cdab
, adbc
, veya bcad
.
aabbcc
, abc
- bunlar her ikisine de sahip ab
, ac
ve bc
geçerli çiftleri olarak. Bu çiftlerden birini iade etmelisiniz, hangisi önemli değil.
abbac
- a ve b aynı karakter sayısına sahiptir, ancak gerçekte çalışamazlar, çünkü bunlardan biri diğerinin tüm oluşumlarının hem solunda hem de sağında meydana gelir. Hiçbir şey döndürmeyin.
aabcdb
- cd
ve ab
tam iki dirsek çifti vardır, çıkış ya da çok cdab
ya da abcd
.
abcdacbd
- Sadece bir çift aynı anda elde edilebilir, ancak ab
, ac
, bd
, cd
, ve ad
olası çiftleri tüm dönebilirsiniz edilir. Seçtiğiniz çifti olursa olsun, bu durumu dışında, başka çiftleri yasaklayan tek diğer karakter kendi içinde olan bir örneğini vardır ad
diğer çift, bc
ve cb
ya ve bu nedenle mümkün olamaz yalnız mümkün değildir ile ad
.
Bu kod golf, bayt en kısa kod kazanır. Diliniz için mümkünse giriş STDIN'den yapılır. Mümkün değilse cevabınızdaki giriş yöntemini belirtin.
abcd
, çıktıadbc
da kabul edilebilir olurdu, değil mi?