Dato una stringa contenente solo 0 di 1, 2 e parentesi, genera l'albero grammaticale della stringa.
A 2richiede 2 argomenti: uno a sinistra e uno a destra
A 1richiede un singolo argomento: a sinistra oa destra
A 0non richiede alcun argomento ed è il caso base
Una coppia di parentesi conta come un argomento e il contenuto delle parentesi viene valutato separatamente dal resto della stringa. Le parentesi nidificate sono possibili
Una stringa di input sarà sempre un albero completo senza caratteri che cadono. La stringa avrà anche un'unica soluzione corretta. Si noti che le funzioni sono commutative e qualsiasi accordo per argomenti 2sarà accettabile. Non dovrai gestire input non conformi a questi requisiti.
Il formato grammaticale di output sarà function(arguments)ricorsivamente nella forma
Casi test
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)))
0120210non possa essere analizzato anche 2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))se i numeri tra parentesi indicano la posizione nella stringa.
101è anche ambiguo.
10201input è valido?