Correspondance Schröder (2)

Série d'exercices

Cet exercice fait partie d'une série :

Suite de l'exercice précédent

Dans l'exercice précédent, on a construit une fonction qui renvoie un chemin pour un arbre de Schröder donné.

Ici, il s'agit de la fonction réciproque, ce qui établit une correspondance entre arbre de Schröder et chemin de Schröder.

L'objectif de l'exercice est de construire une fonction telle que chemin_vers_arbre(chemin) renvoie la description d'un arbre de Schröder du chemin passé en paramètre avec sa description.

Exemples
  • donne
🐍 Console Python
>>> chemin_vers_arbre([(1, 1), (1, 1), (1, -1), (2, 0), (1, -1)])
[[[], []], [], []]
  • donne
🐍 Console Python
>>> chemin_vers_arbre([(1, 1), (2, 0), (1, 1), (1, -1), (1, -1)])
[[], [[], []], []]
  • donne
🐍 Console Python
>>> chemin_vers_arbre([(1, 1), (2, 0), (1, 1), (2, 0), (1, 1), (1, -1), (2, 0), (2, 0), (1, -1), (1, -1)])
[[], [[], [[], []], [], [], []], []]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013s3o_8bcdufvg/0ly n7apS.r1-me,(P2=4:+twki9][5hx)6050i0C0L0u0O0p0b0r0h0p0u0b0b0H010L0O0v010406050b0j0B0B0u0y0q040w0d0p0j0;0d0s050n0{0}0 110_0v041a1h051k0n1k1m1h0_0i0O0l0)0+0-0/0T0O0m0T0p1A0T0L0@050!0g0p0C1v0,0.011z1B1D1B0L1J1L1H0L0g0d0i111I0y1i0L0T0)140b0v0u0s0/0G011N1x010k0$0C0s0u0B0C1H1/1;1_1P1|1L1 210@0a0r0F0y0d0v0d0b0O170s0r0Y1-0y0y0C0h2m1a240s1i0n1+2z0L1)1(1*0i260/1D0s1~2j1H1s1u0*1O2J0O2L0s1#1t1H0v2s1i2x2z2%0`1:2n2R1`2W0y0~0p0@0r0z2w2+0^2*252-1P2/2;2?0G2_1;2{2x2I01300u2=040r0c342y0_372~0/3a3c0r0I3g362+383m2?0S3q3i3s3k390d2:3b2?0W3x2|2,1w2 3C313d0t3H3j3K3l3M3E3d0f3Q3z3S3B3D3n0P3Y2}3!3u040z0o3)3J2S3#3N0z2^1b2`3y3*3=3,0z333`353|3;2.3U3c0z3f423h3I3t470@0z3p4b2z2!0C2z2P2C0i2G380h1#221i4o1l2#3I2(2`054t0Y2$3Z3=0N0@0Y0k3q4d3A0M2?4N3R3~0k0@0h0T0C0B2U0e0l0C0y0b0e0 0g2s4S4H1`0?040E4/3}2.4W4Y4!194j4O3!4=0V0J3x0r560r503~0@4,4.4j584T1`0d0@0H3q5f4:1P4=0R0Q5557594`042W0C0j0i5l5u1P5i045k5e5C3l5b0y4-0C5s565I390@0v1}5B5g5D5j5V5n0/5p5r4j06575m4_1P4J040k3C5Z5,5J040i0U4^455o0@0D5=5|5@1$60380d4Q042U643A0s4{4Z694 5W5#0@545(5*5*5Q5.0O4M5H6h5R5^0q6a3!5E0H5G2%5+61015E0K5{384!4g6I3A4=6k2%5)6m6S5Q6c045T1L6M6y0@0x6Z5a040u0v0v1~5A6g5!014=4@6/5?6u5x5z6%4;0@0V5O6m6o0@0C0%5N6@6E6O706S5P6t6V6`6.6C5Q6z6x6(6X762)6t5p6|5X040A7r0/6K3-7v6;0@5%6Q7b716t6p6r7h7d4K6w6s6:6z6B2`6D650@7u776J0O6L7W6N6j7a7E5t7K6W5U7!6!046$7-7l2h7z6=6 6l7b6U0@7f7z5E7:7o6:6V6*6,0s7g4C7p0@0E5q7_7D7{7*7~7N6^7j8j6E7e0d5y88355Q7q7;5h7U7z7x3_826^4=7C3{6n7G0@2s0L0j0y4~7J835K5M3H0n4E4m1j4z0n4x2A4q1a2D2C1!1$2C0u1K8V8Y1t2{8Y0Z0#0%04.
Indice 1

On pourra créer une fonction telle que ajout_feuille_droite(arbre, niveau) ajoute une feuille à arbre totalement à droite, à la profondeur niveau.

Indice 2

On pourra utiliser une pile qui recense les ouvertures de niveau.

Indice 3

Cet exercice n'est pas simple du tout. Bon courage !!!