Votre mission, si vous l'acceptez, consiste à ajouter le nombre minimum de parenthèses, d'accolades et de crochets pour que la chaîne donnée (contenant uniquement les parenthèses, les accolades et les crochets) ait une correspondance d'accolade correcte. Les liens des symboles ajoutés doivent être rompus en ayant la distance maximale entre les accolades appariées. Vous devez renvoyer une seule réponse correcte qui correspond à ces deux règles; D'autres liens, s'ils existent, peuvent être rompus comme bon vous semble.
Exemples:
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
Vous pouvez écrire un programme ou une fonction , recevoir l'entrée via STDIN en tant qu'argument chaîne à votre fonction, qui renvoie la sortie sous forme de chaîne ou l'imprime dans STDOUT (ou l'alternative la plus proche). Vous pouvez éventuellement inclure une seule nouvelle ligne de fin dans la sortie.
Vous pouvez supposer que la chaîne d'entrée ne comprend que les 6 caractères suivants (ou leur absence): [](){}
(Vous n'avez pas besoin de prendre en charge <>
)
Il s'agit du code-golf , le programme le plus court qui gagne. Les failles standard sont bien sûr interdites .