Göreviniz, kabul etmeyi seçerseniz, belirli bir dizeyi (yalnızca parantez, kaşlı ayraçlar ve köşeli parantezler içeren) doğru küme ayracı eşleştirmesi yapmak için minimum sayıda parantez, parantez ve parantez eklemektir . Eklenen sembol bağları, eşleştirilmiş parantezler arasındaki maksimum mesafeye göre kırılmalıdır . Bu iki kurala uyan tek bir doğru cevap döndürmeniz gerekir; Varsa diğer bağlar, uygun gördüğünüz şekilde kırılabilir.
Örnekler:
input output
// Empty String is a legal input
[ [] // Boring example
[()] [()] // Do nothing if there's nothing to be done
({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, ({{}})
[([{])]} {[([{}])]} // NOT [([])]{[([])]} or similar
Bir program veya işlev yazabilir , girdiyi işlevinize bir dize bağımsız değişkeni olarak STDIN aracılığıyla alır, bu da çıktıyı dize olarak döndürür veya STDOUT'a (veya en yakın alternatife) yazdırır. İsteğe bağlı olarak, çıktıya tek bir sondaki yeni satır ekleyebilirsiniz.
Giriş dizesinin yalnızca aşağıdaki 6 karakterden (veya eksikliğinden) oluştuğunu varsayabilirsiniz: [](){}
(Desteklemenize gerek yoktur <>
)
Bu kod golf , en kısa program kazanır. Elbette standart boşluklar yasaklanmıştır .