Eine "Triplett-Klammer" (die ich für diese Herausforderung erfunden habe) ist eine der folgenden:
(...+...)
[...:...]
{...|...}
<...-...>
Eine symmetrische Triplett-Klammer-Zeichenfolge (kurz BTBS) ist entweder eine leere Zeichenfolge, zwei verkettete BTBS oder eine der obigen Triplett-Klammern, wobei jede ...
durch eine BTBS ersetzt wird.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die überprüft, ob eine Zeichenfolge, die nur aus (+)[:]{|}<->
besteht, ausgeglichen ist. Kürzester Code gewinnt.
Beispiele
Ihr Programm sollte für die folgenden Zeichenfolgen die Wahrheit zurückgeben:
(+)(+)(+)
[[[:]:]:(+(+))]{<->|<(+)->[:]}(+)
<<<<<<<<<<<<->->->->->->->->->->->->
{|(+[:<-{|(+[:<->])}>])}
[[[:]:[:]]:[[:]:[:]]]
{[:](+)|<->{|}}[(+)<->:{|}(+)]
Ihr Programm sollte für die folgenden Zeichenfolgen einen Fehler zurückgeben:
:[
<|>
(+(+)
[:][:](+[[:]):]
{|{|{|(+{|{|{|}}}}}+)}[:]{|}
{{||}}
<<->-<->-<->>
[(+):((+)+)+(+(+))]
<<<<<->->->->->->
<|>
in den falschen Beispielen.
(|)
gültig. Ich glaube nicht, aber ich bin nicht sicher