Sous-suite d'une chaîne de caractères

On appelle sous-suite d'une chaîne de caractères, une chaîne produite en enlevant zéro, un ou plusieurs caractères.

Par exemple, "AN", "API" et "LAPIN" sont des sous-suites de "LAPIN". Par contre, "APNI" et "LAPIN !" ne sont pas des sous-suites de "LAPIN".

Notez que la chaîne vide "" est une sous-suite de n'importe quelle autre chaîne de caractères.

Écrire la fonction est_sous_suite qui prend en paramètres deux chaînes de caractères chaine_1 et chaine_2 et renvoie le booléen indiquant si chaine_2 est bien une sous-suite de chaine_1.

Exemples
>>> est_sous_suite("LAPIN", "AN")
True
>>> est_sous_suite("LAPIN", "API")
True
>>> est_sous_suite("LAPIN", "LAPIN")
True
>>> est_sous_suite("LAPIN", "APNI")
False
>>> est_sous_suite("LAPIN", "LAPIN !")
False

###(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

.128013nFTimwgyk02P;o, 56]uR+alI84t/sbr[vce3)fhj:1S=9é7_dqp(050Y0K0C0x0e0y0E0q0J0y0x0E0E0T010C0e0!010406050E0u0f0f0x0G0i040S0o0y0u0_0o0b0q020x0f0!0n0q0v0K130G0Z0u0K0E050D101214160~0!041u1B051E0D1E1G1B0~0Y0e0I0.0:0=0@0O0e0h0O0y1U0O0C0|050)0F0y0K1P0;0?011T1V1X1V0C1%1)1#0C0F0o0Y161$0G1C0C0O0.190E0!0x0b0@0l011+1R010N0+0K0b1h0K1#26282d1-2g1)2j0f2l040a0q0m0G0o0!0o0E0e1c1e0%240G0G0K0J2G1u2n0b1C0D222S0C201 210Y2p0@1X0b2i2D1#1M1O0/1,2$0e2(0b1|1N1#0!2L1C2Q2S2}0 271e2.2e2?0G130y0|0q0R2P310}302o331-3537390l3c283e2Q2#013j0x38040q0L3n2R0~3q3h0@3t3v0q0B3z3p313r3F390r3J3B3L3D3s0o363u390s3Q3f321Q3i3V3k3w0W3!3C3%3E3)3X3w0A3-3S3/3U3W3G0U3^3g3`3N040R0k3J1D2{1u2,2V0Y2Z3r0J1|2v0$1N1C2`0K2|3d464f0%4n402/010j0|0%0N463.4u0g394A3_4u0b0N0|1s0C0X0E0o0u0E4N0u2F0K4F4t2e0{040#4W3$4H0|0J0O0*2(0X3b1v4o4B4Y0|0p3J0q3#3M4)4+2;0K0X3m4:3o4{3T4Z0M0Q3Q0q5b4`4=1-4w040e4z532R5d4G340F0|2s4$3r4Z4#5k4s4%344}4,50522 5e0@574_553`0o0|0T0T5I5F010f0e0|455w5J4u4Z595w065c5%5m4X5f0|2L0C0u0G0b5P5n5f0J0|0d0G1r5a5c5X5z040P5=5*0@5L045O5w5)5y1-5S5U5}5b5 5+040N3V636b3E4)6m3r0o4D5h5;696h6o044*5B4.5s560|5!2}5$5(6g5Q5g5i6q3T0b6p6w5Q665N6O415A4 516D3`4Z0H6#4(616)4?040t6G3d6I6J5%6x3s0|626S5?650|0w682}6a3r6d436f6?6K6}4v0|6N6|646_6+7e6n016U713d736P5p045r5W5Q5u6,3i6Y4-5D4;7a576:3o6=785(6^5g5-5/6v727J5^045`5|5#6@6L5,0(7M6W4u0j7Q0c3u0E4V5#1u4q4m477/0D4a1u0C4c7@2X2T1{1}2V0x1(7;4a1A5x3r2L0f0X0N0x0j500O0L0|1m1o1q1s0q7E2R1D3e1B0z0y0q4L0q0x4Q2E0q2C0=0e810q2I2`0o0J0V0%0G8v0I2M0q0u2(0q1{0u0/1*2?1e1{5:0V1*5!1K4i2-3`1/1W1Y1!853T2r2i2k0|2x0S0J0G0`0C2y0i221d464l5x2~4o7.8:3`5g4y7w0@6t4`7t7a4I4K0E4M4O4Q4S4U9d017v9h7f6Q6z4~4-4/5E7C4@7!606A6Z7A547u0|58776^9w0e9E1-6U9R0@755V6H7V9i6`9U7k5M9$9W9N7W040g1T1)9$9P9$66020y0C0n9;7q7s9B7f9t9 7j9w9G9z9r5H7i6r6t280Y9;9#a93T9@9_9{ag419}2ia70|5va24|9x6B9I8n9K049M7U6?7J7c5j7O5Qa49y509A7Ba00|6(9ua37cap6.9?5M7m3o7o6Xau9HaTaPas6Pafa)6$0|6/77789Oa+7n6^66709)5T76aB6Ja=5haV04a`al4u75aL7F9Z7f7K7Y5:ae7haG7a7l9|5qaoaQ5taq9raIavaT0M3!0D987:2S83490(0*0,04.

###(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

.128013nFTimwgyk02P;o, 56]uR+alI84t/sbr[vce3)fhj:1S=9é7_dqp(050Y0K0C0x0e0y0E0q0J0y0x0E0E0T010C0e0!010406050E0u0f0f0x0G0i040S0o0y0u0_0o0b0q020x0f0!0n0q0v0K130G0Z0u0K0E050D101214160~0!041u1B051E0D1E1G1B0~0Y0e0I0.0:0=0@0O0e0h0O0y1U0O0C0|050)0F0y0K1P0;0?011T1V1X1V0C1%1)1#0C0F0o0Y161$0G1C0C0O0.190E0!0x0b0@0l011+1R010N0+0K0b1h0K1#26282d1-2g1)2j0f2l040a0q0m0G0o0!0o0E0e1c1e0%240G0G0K0J2G1u2n0b1C0D222S0C201 210Y2p0@1X0b2i2D1#1M1O0/1,2$0e2(0b1|1N1#0!2L1C2Q2S2}0 271e2.2e2?0G130y0|0q0R2P310}302o331-3537390l3c283e2Q2#013j0x38040q0L3n2R0~3q3h0@3t3v0q0B3z3p313r3F390r3J3B3L3D3s0o363u390s3Q3f321Q3i3V3k3w0W3!3C3%3E3)3X3w0A3-3S3/3U3W3G0U3^3g3`3N040R0k3J1D2{1u2,2V0Y2Z3r0J1|2v0$1N1C2`0K2|3d464f0%4n402/010j0|0%0N463.4u0g394A3_4u0b0N0|1s0C0X0E0o0u0E4N0u2F0K4F4t2e0{040#4W3$4H0|0J0O0*2(0X3b1v4o4B4Y0|0p3J0q3#3M4)4+2;0K0X3m4:3o4{3T4Z0M0Q3Q0q5b4`4=1-4w040e4z532R5d4G340F0|2s4$3r4Z4#5k4s4%344}4,50522 5e0@574_553`0o0|0T0T5I5F010f0e0|455w5J4u4Z595w065c5%5m4X5f0|2L0C0u0G0b5P5n5f0J0|0d0G1r5a5c5X5z040P5=5*0@5L045O5w5)5y1-5S5U5}5b5 5+040N3V636b3E4)6m3r0o4D5h5;696h6o044*5B4.5s560|5!2}5$5(6g5Q5g5i6q3T0b6p6w5Q665N6O415A4 516D3`4Z0H6#4(616)4?040t6G3d6I6J5%6x3s0|626S5?650|0w682}6a3r6d436f6?6K6}4v0|6N6|646_6+7e6n016U713d736P5p045r5W5Q5u6,3i6Y4-5D4;7a576:3o6=785(6^5g5-5/6v727J5^045`5|5#6@6L5,0(7M6W4u0j7Q0c3u0E4V5#1u4q4m477/0D4a1u0C4c7@2X2T1{1}2V0x1(7;4a1A5x3r2L0f0X0N0x0j500O0L0|1m1o1q1s0q7E2R1D3e1B0z0y0q4L0q0x4Q2E0q2C0=0e810q2I2`0o0J0V0%0G8v0I2M0q0u2(0q1{0u0/1*2?1e1{5:0V1*5!1K4i2-3`1/1W1Y1!853T2r2i2k0|2x0S0J0G0`0C2y0i221d464l5x2~4o7.8:3`5g4y7w0@6t4`7t7a4I4K0E4M4O4Q4S4U9d017v9h7f6Q6z4~4-4/5E7C4@7!606A6Z7A547u0|58776^9w0e9E1-6U9R0@755V6H7V9i6`9U7k5M9$9W9N7W040g1T1)9$9P9$66020y0C0n9;7q7s9B7f9t9 7j9w9G9z9r5H7i6r6t280Y9;9#a93T9@9_9{ag419}2ia70|5va24|9x6B9I8n9K049M7U6?7J7c5j7O5Qa49y509A7Ba00|6(9ua37cap6.9?5M7m3o7o6Xau9HaTaPas6Pafa)6$0|6/77789Oa+7n6^66709)5T76aB6Ja=5haV04a`al4u75aL7F9Z7f7K7Y5:ae7haG7a7l9|5qaoaQ5taq9raIavaT0M3!0D987:2S83490(0*0,04.