Bei einer Zeichenfolge, die nur Nullen, Einsen, Zweisen und Klammern enthält, wird der Grammatikbaum der Zeichenfolge ausgegeben.
A 2erfordert zwei Argumente - eines nach links und eines nach rechts
A 1erfordert ein einzelnes Argument - entweder nach links oder nach rechts
A 0benötigt keine Argumente und ist der Basisfall
Ein Klammerpaar zählt als ein Argument, und der Inhalt der Klammern wird getrennt vom Rest der Zeichenfolge ausgewertet. Verschachtelte Klammern sind möglich
Eine Eingabezeichenfolge ist immer ein vollständiger Baum, aus dem keine Zeichen herausfallen. Die Zeichenfolge hat auch nur eine einzige richtige Lösung. Beachten Sie, dass die Funktionen kommutativ sind und jede Anordnung von Argumenten 2zulässig ist. Sie müssen keine Eingaben verarbeiten, die diesen Anforderungen nicht entsprechen.
Das Ausgabeformat für die Grammatik wird function(arguments)rekursiv angegeben
Testfälle
0 --> 0
01 --> 1(0)
020 --> 2(0,0)
101 --> 1(1(0))
0120 --> 2(1(0),0)
0120210 --> 2(1(0),2(0,1(0)))
01210 --> 2(1(0),1(0))
(020)210 --> 2(2(0,0),1(0))
((020)20)1 --> 1(2(0,2(0,0)))
0120210nicht auch analysiert werden kann, 2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))wo die Zahlen in Klammern die Position in der Zeichenfolge angeben.
101ist auch mehrdeutig.
10201gültige Eingabe?