Étant donné une chaîne contenant uniquement des 0, des 1, des 2 et des crochets, affichez l'arborescence grammaticale de la chaîne.
A 2nécessite 2 arguments - un à gauche et un à droite
A 1requiert un seul argument - à gauche ou à droite
A 0ne nécessite aucun argument et est le cas de base
Une paire de crochets compte comme un argument et le contenu des crochets est évalué séparément du reste de la chaîne. Les crochets imbriqués sont possibles
Une chaîne d'entrée sera toujours une arborescence complète sans aucun caractère tombant. La chaîne n'aura également qu'une seule solution correcte. Notez que les fonctions sont commutatives et tout arrangement d'arguments pour 2sera acceptable. Vous n'aurez pas à gérer des entrées non conformes à ces exigences.
Le format de grammaire de sortie sera function(arguments)récursivement sous la forme
Cas de 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)))
0120210ne peut pas également être analysé comme 2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))où les chiffres entre crochets indiquent la position dans la chaîne.
101est également ambigu.
10201entrée est-elle valide?