Exercice 1 - Manipulation de chaînes⚓︎
1.Dernière lettre⚓︎
Écrire une fonction derniere_lettre
qui renvoit la dernière lettre d'une chaîne de caractères.
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
.128013="m_e]h(yaplq3),dRun[ sS:6w
gPi1vkr.90O-t2è5V;f4bcoA/030l090J0e0z0g0r0q0S0g0e0r0r05060J0z0f06020w030r0n07070e0D0d020s0T0g0n0/0T0o0q000e070f0O0q0m090|0D0h0n090r030V0_0{0}0 0@0f02031u1n1x0V1u0@0l0z0B0'0)0+0-0)0o0x0n0e0x090I0f0d0J0b160q0b0z0x0b0g1Z0b0J0=030Z0R0g091G0*0,061Y1!1$1!0J1+1-1)0J0D1v1U0'120r0f0e0o0-0K061/1I060P0#090o1a091)24262b1;2e1-2h072j02040q0y0D0T0f0T0r0z15170X220D0D090S2E1n2l0o1v0V1U2Q1~201 1*0l2n1J0z0o2g2B1)1D1F0(1:2!2$0o0T2)1)0f2J1v2O2Q2_0^25172+2c2/0D0|0g1)0e1X2J0P0-0108080S2:091$2.0T0I0G0I0A0=0A1n0e2`2}0?2|2m2 1;313335370939063b3d3f3h2%3k0I29020K3q3s263u2O2Z063z0e341v360b383a3c3e0X3J2/3L0i0=0i3Q2N3t0@3U3x0-3X3Z033#3%3F3(3I2#3K3l0Q0=0Q3;1o3?3v2~1H3y0T323Y3B3$3D3'3H3*433,3l0M0=0M492{1A2@1n2)2T0l202Y3_063)2t0W1E1v2?092^3t3=3S034H4O2m0z0l0-3c2O3L3n3!0q4W4Y4n3g4p3j3l3n0q2r094)4H3+4-3m1)0V3r4c3V0C0=0X0P4Q2P0q4~4F0o0P51090D0o0z5c09081-1`2J544U4d2,060;020c5m574e3`0=070T0J5u3^5w5q0=0j0t5m0@4a4R3U4(064Z2}3L3N3}4'4X5P4*4^5S2a4;4?423i5!2Q3r0q5,565D5p0o5b5d5f0D5m5.2}3V0T0=055_5v5p0r4$00010i0F0O65670O5J5C5{5O5Q263-3B6g5Y4,6j4:2i5%4o5(3l3.5*025-5`3w5E50020P4g605/300=0S0}0e2L5g6G5{4F0T0v0=2#6P6A5:5y5A6e6X2c5r5I5L2P5K2{5N5W6h0o3L464%6l4@6n455#6q5X6^6t0I6=3Q6y6y616I020X5?5c6W5o2c5}025 6)6x753y6J6L6N5l7h6+4P6-4)4!4r6k6.6m6 4s6p2s6r4+7z4{5+5-7j0-6C2J0J0n5d7b3V5;775c5e7a7p5u0V4T1y4y0V4A1n0J4C7(2W2R0e1,4N4z4K1t5n3V2J07080P0e0C5h0b6v1f1h1j1l0q6(4w1B4J2*5E0e0l5z5e2E4'597e1t3V8d8f2D0z160I0/0J1|020U142J0q0r12148q172A0+0z7/1y3u1u0N0T0z0S0z0q0n2$0q0e8y1.8B138h8G2C7/868K1C1E3V1K1M1O1Q1S1U1W1?1#1%1(7@4F2p2g2i0=0y1T1V0o5u4M5n3R2P4S3f7@6l4!0A4`6?7x6~3K9f4/5$6}5'9k4`3C3E3G9j3,9l7G8{6B5b537h6z7c3y5a7T792J5i0Y1~093P7h7J5F5s6#9F5x025z5B9Q6H1;5r5H6d9!6f7x9e3M7w7D5Z9f297B4=9o6s9q9=4k9t419_9w9-6w749#0-0S4$010q0H170x0L8z1-0%6K0%250D0/0S0n1$5c0%0t0q1-0q9Y4:1.3e0o0/2g9Z2_7q5M9*7t5R9f6v5U6@9pa03.9?9/6naJ2a9|4m9v3jaTa27Ia44Ga78V0nam8U5j9N0k0q0T0n0q1j6a688T8Y09an090E9(6,aG5X9,7136aM9 aY706{7C9^7E9q469saWaNb8714|6xa#6Q9A020z9C2_9E7R0R0=2q9U3V5r5t9)6$7k9X6!bD9V9S0j7Q6R0=000g0J0O7gbt9R070z3obz4F6'a 7rb16/3m0I4s9haR5(9f7A9n9~bda07AaV407y9qb+72735,9R7L0Y7O949D9R7S9Yb$aF4V9+aI0I0u9.bc9:cfba9@b=cjcgbgb`aXb)cga!c0a$c27N7Pc6a$c8bHb0bE0-5r0pbZ5E7e0IcK5pbWbYbIbA0=0aca997Z9b7#7:7%7=7;0B3u7%0Y0!0$02.
2. Une lettre sur 2⚓︎
Écrire une fonction moitie
qui renvoit une lettre sur 2 d'une chaîne de caractères.
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)
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
.128013="m_e]h(3yapl)qd[un sS:
gPi1vkr.O-t2fbco/030k090D0f0v0h0p0o0H0h0f0p0p05060D0v0g06020s030p0m07070f0z0e020q0I0h0m0!0I0n030J0*0,0.0:0(0g0203130|160J130(0k0v0x0S0U0W0Y0U0n0t0m0f0t090C0g0e0D0b0`0o0b0v0t0b0h1y0b0D0%030N0G0h091f0V0X061x1z1B1z0D1H1J1F0D0z141t0S0?0p0g0f0n0Y0E061L1h060F0P090n0f07091F1%1(1-1N1:1J1?1^0%040o0u0z0I0g0I0p0v0_0n0o0L1#0z0z090H2d0|1{0n140J1t2q1X1Z1Y1G0k1}1i0v0n1=2a1F1c1e0T1M2A2C0n0I2G1F0g2j142o2q2T0)1'2e2I1.2M0z0-0h1F0f1w2j0F0Y0108080H2N091B2L0I0C0E0C0w0%0w0|0f2U2X0'2W1|2Z1N2#2%2(2*092,062.2:2=2@2D2`2`0%0E30321(342o2z06390f2'142)0b2+2-2/2;0L3j2M3l0d0%0d3p2n33172R0|2G2t0k1Z2y370Y3F1_143T153R2V0}3P3!2S2X0o0v0k0Y2/2o3l2}3z3/3;063E3i2B3k2{2}0o21093=3h3G403I421F0J31352Y1g1N0y0%0L0F3O3r0o4g3u0n0F0%070I2c0v094o2p4r3Y060$020c4B3-364i0Y0n4v0I0D4J4D4M4F0%0i0r4J0(3*3r4r3:473@2{1+3`4'3}482?4a2_4*1,45473!3H4=3m2q310o504q3t4E0H3_010o0B2e0^0P0v0p1K0v0H0v0o0U0o0D2k0b0n0v0j0m1K0k0m0o0p1B5h1k0A4Z4S3t4-3?2X3J3b5F4/4{5I441@464.4`4;5I4~0251523.4E4k022j0D0m0z0{4#2p5Y4L2J3v4P4R5+4K4h5/4G0l0r4Y5?4T5/070v3n5D5Z4U4G0a5C5~0J3,3Q092q3%2r3V0|2u6j0f1I6e3S1d340J0L0N0P0p02.
3. Transformation en liste⚓︎
Écrire une fonction separe
qui sépare une chaîne de caractères par rapport aux espaces qu'elle contient.
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)
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
.128013="mI_eh(3yapl)qdàuné sS:
gPi1vkr.9-t25f;4bco/030k0a0E0f0w0h0q0p0L0h0f0q0q05060E0w0g06020t030q0m07070f0A0e020r0M0h0m0'0M0n030N0.0:0=0@0,0g020317101a0N170,0k0w0y0W0Y0!0$0Y0n0u0m0f0u0a0D0g0e0E0b0~0p0b0w0u0b0h1C0b0E0*030R0K0h0a1j0Z0#061B1D1F1D0E1L1N1J0E0A181x0W0`0q0g0f0n0$0F061P1l060H0T0a0n0f070a1J1*1,1;1R1@1N1`1|0*040p0v0A0M0g0M0q0w0}0n0p0P1(0A0A0a0L2h101 0n180N1x2u1#1%1$1K0k211m0w0n1_2e1J1g1i0X1Q2E2G0n0M2K1J0g2n182s2u2X0-1+2i2M1=2Q0A0;0h1J0f1A2n0H0$0109090L2R0a1F2P0M0D0d0D0x0*0x100f2Y2#0+2!202%1R2(2*2,2.0a2:062=2@2_2{2H2~0D1/020F34361,382s2D063d0f2+182-0b2/2;2?2^0P3n2Q3p0d0*0d3u2r370,3y3b0$3B3D033F3H3j3J3m2F3o2 0J0*0J3S113U392$1k3c0M2)3C3f3G3h3I3l3L3*3N2 0G0*0G3:2Z1d2V102K2x0k1%2C3X063K1}184e194c4a2Z4l2W2#0p0w0k0$2?2s3p313E4w4y063(422|4C1:250a4z412`432}2 4D3S3W3^0$0z0*0P0H3T3w0p3?3z0n0H0*0q0a1+2n4'2t4*4j0)020c4?4u3a4Y3A0*070M0E4}4^504`0i0s4}0,3;3w4*4x4P4B2 3r3#4F4P4l3M4T3q4M1{4O4H4Q5q3p5l0N350p5D4)4X2N4k4D010p080h0p0H0f0|1(0:1_0L0a0A0p4;0p0.0g2U0w1|5X1N0V0a1 5V0q5c563y5h5w5j2~3f5?4I4R4K2 3P0p4N5o3)5~5_2u5C5E575H0L5J0p0j0m00010d0C0I0T5Y0a5R0e0p0f0y0M0w5X1_0p1#2c6r0m2j0o0K5R0M6C0l0p0Y5O2F0B5:5e4@5=4G4A2#3p3-4E5{5x4S6W5t1|634J3+0D6X3u5E5F4v4j0n52544}6/4 5H0M0*056^6a2'6?556Q4~3@6{0*6O74703c4.1#0(5;6:580*0c0i6P2Z6S5i6V455`6T6!6546615u6(5}6*4667026.7b4Z0*2n0E0m0A0 746_76710253737n7h7702797V6`7R1*1F7U377G064`4|7a5G1=0q4D6h6j0I0p7?6k7g7#1R597m7)0N4t1b4c0N4o2v4g102y8a0f1M0a2u4e5d0P0R0T0q02.
4. Retour en chaîne⚓︎
Écrire une fonction assemble
qui fait le contraire de separe
, c'est-à-dire que :
- pour toute chaîne de caractères
mot
ne contenant pas d'espaces au début ou à la fin,assemble(separe(mot)) == mot
, - pour toute liste contenant des chaînes de caractères
liste
,separe(assemble(liste)) == liste
,
###(Dés-)Active le code après la ligne
(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)
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
.128013="m_eh(3yapl),qduné sS:j
gPi1vkr.9O-t2è5f;4bcîo/030k090F0e0w0g0p0o0N0g0e0p0p05060F0w0f06020t030p0l07070e0A0d020q0P0g0l0*0P0m030Q0;0?0^0`0/0f02031a131d0Q1a0/0k0w0y0Z0#0%0(0#0m0u0l0e0u090E0f0d0F0a110o0a0w0u0a0g1F0a0F0-030U0M0g091m0$0'061E1G1I1G0F1O1Q1M0F0A1b1A0Z0}0p0f0e0m0(0G061S1o060J0W090m0e07091M1-1/1@1U1`1Q1}1 0-040o0v0A0P0f0P0p0w100m0o0S1+0A0A090N2k13220m1b0Q1A2x1'1)1(1N0k241p0w0m1|2h1M1j1l0!1T2H2J0m0P2N1M0f2q1b2v2x2!0:1.2l2P1^2T0A0@0g1M0e1D2q0J0(0108080N2U091I2S0P0E0L0E0x0-0x130e2#2'0.2%232)1U2+2-2/2;092?062^2`2|2~2K310E1=020G37391/3b2v2G063g0e2.1b2:0a2=2@2_2{0S3q2T3s0c0-0c3x2u3a0/3B3e0(3E3G033I3K3m3M3p2I3r320L0-0L3V143X3c2(1n3f0P2,3F3i3J3k3L3o3O3-3Q320I0-0I3?2$1g2Y132N2A0k1)2F3!063N201b4h1c4f4d2$4o2Z2'0o0w0k0(2_2v3s343H4z4B063+452 4F1?28094C442}4630324G3V3Z3{0(0z0-0S0J3W3z0o3_3C0m0J0-1T09071P094*2w4-4m0,020b4`4x3d4#3D0-1I0p0F4_3@3z4|544~0h0r510/5b4{3B4A4S4E323u3'4I4S4o3P4W3t4P1~4R4K4T5w3s5r0Q380o5J4,4!2Q4n4G010o0D2l0J0V0F0o1Q1+0m1'0V2q2m1R2X0n0N0n0S0?1|0F0B5i514-5n5C5p0E3S4H5^4L4U4N323S0o4Q5u3,615{1M5H025K5L4y4m0N5P5R2l0A0n0l0m2j5X090Y1j0J0J0n2q5!0Y0n0g0n1 6y5'5X2:57590i0o1|0o1 1!1/0F5=5k522l5~085`3:5}4J5 5E3/5z1 664M3.316a5I5K5d5N6h0-5Q6n1R0N0a0e0O2J6F0N0^0e2s0H5%5/5%6{0e0j0l095;6T5j2$5m6#6X2'3s496!6*606,49645A7p6%0E7n3x6d6;1^4%022q0F0l0A126T6e535N0p4G00010c0C0K0o7Q7S0K5?5M1^0P0-7e7h6f540m0-0s0P2I7Z7)5N4~506T7B3f560w585a7(7M1^5f6S4d4w1e4f0Q4r2y4j132B8c0e4^2x4h5j0S0U0W0p02.
# Tests
(insensible à la casse)(Ctrl+I)