Expression bien parenthésée (plusieurs types)
Le cadre
On considère dans cet exercice un parenthésage avec les couples (), {}, [] et <>. On dira qu'une expression est bien parenthésée si chaque symbole ouvrant correspond à un symbole fermant et si l'expression contenue à l'intérieur est elle-même bien parenthésée.
Bien parenthésées
(2 + 4)*7tableau[f(i) - g(i)]#include <stdio.h> int main(){int liste[2] = {4, 2}; return (10*liste[0] + liste[1]);}
Mauvais parenthésage

(une parenthèse laissée ouverte; pas de fermante associée à(.{<(}>); mauvaise imbrication.c'est trop tard ;-); pas d'ouvrante associée à).
Exercice
Coder une fonction est_bien_parenthésée qui détermine si une expression passée en paramètre est bien parenthésée avec les couples (), {}, [] et <>. La fonction renvoie un booléen. L'expression sera une chaine de caractères de longueur au plus 1000.
Exemples
>>> est_bien_parenthésée("(2 + 4)*7")
True
>>> est_bien_parenthésée("tableau[f(i) - g(i)]")
True
>>> est_bien_parenthésée("int main(){int liste[2] = {4, 2}; return (10*liste[0] + liste[1]);}")
True
>>> est_bien_parenthésée("(une parenthèse laissée ouverte crée une tension intense qui dure toute la journée.")
False
>>> est_bien_parenthésée("{<(}>)")
False
>>> est_bien_parenthésée("c'est trop tard ;-)")
False
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
.128013x/.r;nbOylaeêu)d6çz3m(Pô02è],59fq!7}8 _o={pcwgv4F1kRIéhtsSL[i:E050q0m0(0l0-0k0)0M0S0k0l0)0)0P010(0-0R010406050)0o0v0v0l0e0j040*0O0k0o130O0g0M020l0v0R0f0M0!0m1d0e0H0o0m0)050c1a1c1e1g180R04051L1E1O0c1L180q0-0V0{0}0 110%0-0U0%0k1$0%0(16050?0h0k0m1X0~10011#1%1)1%0(1/1;1-0(0e1M0(0%1?1Z010G0^0m0g1r0m010{1j0)0R0l0g110A1-2j2l271^2a1;2d0v2f040a0M0x0e0O0R0O0)0-1m1o0;2h0e0e0m0S2J1E2q0g1M0c252V2224231.0q2s111)0g2c2G1-1U1W0|1@2)0-2+0g0O2/1-0R2O1M2T2V30192k1o2;282_0e1d0k160M0Y2S3417332r361^383a3c0A3f2l3h2T2(013m0l3b040M0u3q2U183t3k113w3y0M0W3C3s343u3I3c0E3M3E3O3G3v0O393x3c0r3T3i351Y3l3Y3n3z0J3%3F3*3H3,3!3z0L3:3V3=3X3Z3J0F3{3j3}3Q040Y0z423)2=3~3-0Y3e1F3g3U434b450Y3p4g3r4i4a373@3y0Y3B4o3D3(3P4t160Y3L4x2V2}0m2V2/2Y0q242%3W0S2`2y0:1V1M4H2 3g3M054Q0;4X4j37160O0o0V0e2l0(3M0M4z3W0O160P4;4?3}0)2o04010w0,0Q020k0(0f01493P160G0m3Z0g4:4F4=3;4b4^044`5i4|4b4~16010p0C0K020U57594F4q5b044+0V5e0(0o2O4{5k285m5o305j3|4b15040Q4Z5N3l5c5Y5T285V0.5M5%5!5F5+4(1^0Z5c3Y5/4r5-0O5$5:115V0D5^5E0G614@0T162@64440h160t145|5_5~160w6f5E5G4.5g6k3W5 694k5c5e1d6o4F5q5(160p0K3T065D3W5=040;636y5Z11663z6p440G161C0(0N0h0-2c0N2k2O5g0%0$0)0$0m6R5U6i6.4)040m0b4H0 0-1n6;1^5V0p5*5C0M735S5}3v160R2b6s5O4_7b6~160,0C3T74756g016I0G5@5p6N77040S7e110O6P687r5,3H6U6^2O6`6|6M7C015)7j7k746z5;676L5R7Q7D7u7w017y670g7Y0g4*4,6n5h327s7M727O7;7V7t791;6}7x160d7`7t0l0R0R2c0q7~5V6j7J767(7X887m6 7N7=7s6I0m1)7T3g7l5E7v7B767!047A7U7s8a5d5f7,4Y7.167130067;8g7K6I0-8l3r8n3W8a7^6-8q7m5P5Q8m7?5V7h7Y8s7q8v7K8Q7a8c3u5m7}8,8P782E856i0p8#160I8W8N7?8a5G5I5K8S7-7K8Z7~8a8p95765V0C8E4h8H9h8O3}6I2O5J0e7$8T3u0Z0S160X3x0)949g7P8h169m5K9p8(89788+9G8U4_8}2U9j6/048!5C1E4#4I1P2~1E4K1E0(4M9#2#2W0l1:9W0c4K1K4%7m2O0v0N0G0l0Z0m0N0%0u161w1y1A1C0M9f3r1P3h1L0#0k0M0j0M0l0M0R1k2H0m5K0`9_0s1n0`2L4Q0g0)220o0-2O0M1;0M1U2Q6{0g2day1=0;0`910e9na41@0O0S0-6,0`0l0o0b0M8y2xaO0)8/1S1N040+ag5H0e2H1n2h0q6,0M2caC5K0M1A0-0M0g006Vah0~0M0U0$0g0$4.1)0)9+1;a(3h2/3u1`1(1*1,9;3u2u2c2e162A0*0S0e140(2B0j257I324W3(314Y9Vbn8;5F4,925L9q4@7dbP3}5V5X8:4}0Y16000p008@04a69O7?0)bY04000wb$bW9Q60bS5rb-000Cb;9b8d8D7Yb,bZ0,b}8B9616b@9K3uc2b.0Kc5a78Cb(c1b`0Qcf2U8Yc8cjbZ5y57cmbJbTc0b^28cc0055ctb%6D9T0cbI9X9-9/a*a,ah9?0-0Baz0l5H0S0M0h4+0|1=71a)bh3Wbj1|1+2p7Kbp2w2ybtbvbxbzbB9F4YbE326ycI8w7)4-4/8`5nc14 5153cC585abKa!d2cy1^5Pd55t5v5x5zda9Tc bLa.aOd39N6Qch0QcF5R9P280Sb-03aC0-aE1naHaz0V0-0;db9k5?0e7%678#7zc_8~8w6b046n0U9ycgc70487b~3PdZ2vb%d+c69H04dd6xd,6q6B708fdA5`bMaN93b%0,986u8ze4e68tb%0C7idf7{d4ef7t6mded`cw9Rea0-ec3%cH4R4G9Y9.4U9:cN9xat2L6$2h1s0e0$0%2ca:1oc#bg1Vbi1*c*bm7?c.br2z0Mbubw0Rby0xbA0%bCc`9Yc|32c~8)d07+dtdi50525456dn8F8 e76w8AdX7Kdhei5s50dkcse|4he~dqbNd%b*7sf4cad{5Wead^f1cnche5b=6=eqfs7f049edSdqe=fv6heofC7tfuem9QeefjdPd@8%8XdpfHfPf3dV7%dZd#ffcv9Qd;d(89d.2cd:fm6veld=b 040p6CescI1RewcL1L0*2l0`1;0`2@aD1C0DafcU0M0o1oav0jaB7p0gdHaG8jg4a;6d811=g80M0$0k0$2x5gaC1=4!eufn9Ueug52P0{8jaxaf0 aRaTgu4=bIek6xbIg40qf}aA1=0v0n2x0M3Y0q2Obf1TePc(eRblc,76eV2xbseYc=e#c@e)dWcnc{4Yc}eufcgNfodvf3bRfL5rd6e_d95Be}dpgyeififS76f65u5wf9hafbdpaMdsheh4hgf/bVfI6=8Mfpd)b)h2d?5{ei7ofOf2d?hyfZ6A04c9ht6ldU7#fV6c6efF86f+e8hWcpei907*f-f$f/f=cGf@bEex0Va9040i0ocW6Z1oa_0$0S0%2ld$4/gT0M0e0yaB2Lgw4$hdbIa^byi94Ih0gz4$aCgSaBgkg44Q1caJil1=4Q2N1$0$0M0(4+bya_h 1lg$a*0/0g2a0gg40^a^av0MgVgX2F6`9,aC00h}bwbOc$g(3}c)g+hL2t2bc/g:eZc?e%c^4Zg{a7g}4$g e1hqh57cehi}3ldZaDh1cod*98dZgkf*fF8xf,d_f.3u6rh$e;h)hz9cd|f?g~f^cKey9Z0=0@0_04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)