Basierend auf DIESER Frage.
Ersetzen Sie ()[]{}<>bei einer gegebenen Zeichenfolge jede Klammer durch eine Klammer des entsprechenden Typs, sodass die Klammern übereinstimmen und die verschachtelten Klammern wie folgt wechseln:
- Die äußersten sind
() - Direkt drinnen
()sollte sein[] - Direkt drinnen
[]sollte sein{} - Direkt drinnen
{}sollte sein<> - Direkt innerhalb von
<>wird()wieder sein (Zyklen)
Alle Zeichen ohne Klammer müssen genau so bleiben, wie sie sind. Offene Klammern dürfen nur durch offene Klammern irgendeiner Art und geschlossene Klammern durch geschlossene Klammern ersetzt werden.
Die Eingabe wird dies immer ermöglichen. Dies bedeutet, dass die Klammern korrekt übereinstimmen, wenn ihr Typ ignoriert wird. Also, {ab<)c]ist eine gültige Eingabe, aber ab)(cdoder ab((cdnicht.
Beispiele:
2#jd {¤>. = 2#jd (¤).
abcdef = abcdef
(3×5+(4-1)) = (3×5+[4-1])
<<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}])
Die Verwendung der nativen Transformation von Eingaben auf diese Weise (automatische Syntax der Sprache) ist nicht zulässig.
Wie immer: kürzester Code gewinnt.