Basé sur CETTE question.
Étant donné une chaîne, remplacez chaque parenthèse ()[]{}<>
par une parenthèse du type approprié afin que les parenthèses correspondent, et les parenthèses imbriquées cycle comme suit:
- Les plus externes sont
()
- Directement à l' intérieur de
()
devrait être[]
- Directement à l' intérieur de
[]
devrait être{}
- Directement à l' intérieur de
{}
devrait être<>
- Directement à l'intérieur de
<>
sera à()
nouveau (cycles)
Tous les caractères sans parenthèse doivent rester exactement tels qu'ils sont. Les parenthèses ouvertes ne peuvent être remplacées que par des parenthèses ouvertes d'un certain type et les parenthèses fermées par des parenthèses fermées.
L'entrée rendra cela toujours possible. Cela signifie que ses crochets correspondent correctement si leur type est ignoré. Alors, {ab<)c]
est une entrée valide, mais ab)(cd
ou ab((cd
ne sont pas.
Exemples:
2#jd {¤>. = 2#jd (¤).
abcdef = abcdef
(3×5+(4-1)) = (3×5+[4-1])
<<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}])
L'utilisation de la transformation native des entrées de cette façon (syntaxe automatique du langage) n'est pas autorisée.
Comme toujours: le code le plus court gagne.