Anagrammes
Deux chaines de caractères de même longueur sont des anagrammes s'il est possible d'écrire l'une en utilisant tous les caractères de l'autre, quitte à les déplacer.
Par exemple les chaines chien
et niche
sont des anagrammes, alors que louve
et poule
ne le sont pas.
Déterminer si deux chaines de caractères sont des anagrammes peut se faire en les comparant après les avoir triées.
On utilise ici une autre approche, récursive :
- si les deux chaines sont de longueur 1, on renvoie
True
ouFalse
selon qu'elles sont égales ou non - sinon, on teste si le premier caractère de la première se trouve aussi dans la seconde :
- si oui, on recommence le test sur les deux chaines dans lesquelles on a retiré la première apparition du caractère testé
- si non, on renvoie
False
Exemple
Pour tester si chien
et niche
sont des anagrammes :
- on observe que
c
est bien dansniche
- on teste si
hien
etnihe
sont des anagrammes - on observe que
h
est bien dansnihe
- on teste si
ien
etnie
sont des anagrammes - etc
- on observe que
n
etn
sont égales : on renvoieTrue
Vous devez écrire deux fonctions :
supprime_premier(chaine, cible)
renvoie un couple(present, chaine_sans_cible)
dans lequel :-
present
est un booléen indiquant si le caractèrecible
est présent danschaine
,chaine_sans_cible
la même chaine sicible
n'est pas présent, la chaine privée de la première occurrence decible
si elle est présente
anagramme(chaine1, chaine2)
renvoieTrue
si les deux chaines sont des anagrammes,False
sinon
On garantit que les deux chaines sont non vides.
Exemples
>>> supprime_premier('ukulélé', 'u')
(True, 'kulélé')
>>> supprime_premier('ukulélé', 'é')
(True, 'ukullé')
>>> supprime_premier('ukulélé', 'a')
(False, 'ukulélé')
>>> anagrammes('chien', 'niche')
True
>>> anagrammes('énergie noire', 'reine ignorée')
True
>>> anagrammes('louve', 'poule')
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
.128013bqO,9vià3o_x;jlpwTf( g0]6-)2s1+8ené4è[m5tLRPhk:c.a=ryFSu/7d050+0H0P0Y0h0p0D0v0W0p0Y0D0D0Z010P0h0q010406050D0(0N0N0Y0!0#040%0k0p0(0 0k0I0v020Y0N0q0n0v0R0H190!0c0(0H0D050)16181a1c140q04051H1A1K0)1H140+0h0g0@0_0{0}0T0h0w0T0p1Y0T0P12050/0b0p0H1T0`0|011X1Z1#1Z0P1+1-1)0P0!1I0P0T0@1f0D0q0Y0I0}0C011/1V010t0;0H0I1n0H1)25272c1;2f1-2i0N2k040a0v0S0!0k0q0k0D0h1i1k0-230!0!0H0W2F1A2m0I1I0)212R1~201 1*0+2o0}1#0I2h2C1)1Q1S0^1:2#0h2%0I0k2+1)0q2K1I2P2R2|15261k2-2d2=0!190p120v0E2O30132 2n321;3436380C3b273d2P2!013i0Y37040v0j3m2Q143p3g0}3s3u0v0K3y3o303q3E380O3I3A3K3C3r0k353t380z3P3e311U3h3U3j3v0*3Z3B3$3D3(3W3v0G3,3R3.3T3V3F0f3@3f3_3M040E0x3~3#2.3`3)0E3a1B3c3Q3 47410E3l4c3n4e46333:3u0E3x4k3z3!3L4p120E3H4t3J4f4o3{4y3O4B4m4w4F423Y4I4v3S4h3+4O3-4g4x423?4T3^4V4L0E3}4Z4D3%4L0C444)4n4+3)0C4b2|4J4Q4W0C4j2~1N2`1A2+2U0+202Z3S0W2?2u0,1R1I2_0H2{3c3I05580-5g4*0}0U120-0t5i4U2d0r385t4!330t12160q2_0h2t0l5e0N0h0H0!5y5n0111040u5O4:3D120W0T0:2%5U3q5R0V3I0v4P400b5C1~5$3S5R0e5*5,4g5X0h1,0H5;3_5(5^5u3h5.040D5:4B5_2d5R0B625z1;0k120A020w0P0n6e5P0I65675N69630}614I0v6z5+6v3r122K160p0/0P6o5V016h040Z6K3q0D2a04021w0k6m6V0(6X6n6y6A6a3h5q0H0o0Y0l0g0(6Q3S6N6P4B6B6f5o0W120$3t0D5~6%6z6)5o120t3U6=405X1a0Y2M5M722|6`5P0k5w042:7a5`045Y5!7h5h6C6x4^6A7z7j6L5p7n5s6_756D7r7d7f2K7p2d6@6^7i7H0I5{5}7N6g7m270+7W0}7l122=6J7G6C7T040-6-6/6;6u6{5Q125)737A7z7S6+7:6:7#6M127Q3c7B3q0U6}040s0!1x3P7|746C7D0H0=7u3n7H7x4d8g7A7~046F0(6H0Y7*7R6C6N0F853n874Q7c0!7e0P7g8f6(8i6E0.0(0!0I827-7/6.817?5P5?8V8Q6G6I3P064_3_7D5r5 477m5+8!6L0I5B04270Y0w8J181y8;6b125T8^3L5X5Z2:0H4@7v7@8p8F7S6r682~7w125@7+7@7-7s9b4}9e8#7_8V9j6t9l9f126d9p7k6i6k6m9y120b0k1f931;9g3z7}8P7E9K042r9P6w959Z7I9s2%9d8n9m049E8A7@7P825K4y9$9R138r7H7D2K0P8S8U9F8_997t9*2Q8G3_9;a2987r9a2%9u4l9T7@8j8l9^9x7{ai6p7U1-826@8%ada5am040M9$9?044.9B9w040y8N7|8t0g8J0hay9o9/aqaw9b0E0l0D270D0l0W5|asab6?84av5D5F5H5J5L9A9v6L5R96aFa3aT9)aPava#7V975=9DaJ8s7,ar0H0l0+aY0lag2Q8o9na~ae0H0CaWbba a%aR6Laua(7b660(5E0!5Gb8a/5Maya^a=ac9(bja}bs7qbn8mbe9,9.8q8g9|120h7FbpbFa$b8ba0IaZbd5ma?an7y8r8Oaj8Q9 8Tav8}8 1n2t1zb1609#b{bKbiaVaXb#a!bYbIbW8Ha{bjblc3bLaybPahbR9U8k71ay7`b+b,a8479}8Rb;bJ2d896~70bM3d0)5k5f1L500)521A0P54cI2X2S0Y5}2R521Gb(3q2K0N0l0t0Y0Ub80T0j121s1u1w1y0vcm5h1N3d1H0Q0Y0v780I2M0h1j5+cCbubwby5IcVa:1Ac 0v0I0J0W1y2D8L0v2H1Q672:0w1x0!0v0q1g2D0H8S0?0W0`df1.2fdk2Kc-1L3d8w3d1#9X1.du8J2M0LdA1g0v1y0PdfbU0t0J2K0IdR0+0(0@7K0PdMdI0T5M5Y0Jc-0vc}1-0v2K580q5L1AdG14dGd;dJ8Kd(0vdOdQ0v0J0w3t0v0Yd!d dLdA5Yd+0Td-0.0v0;d800c@260?2h58dA0J0Pd-1~0k0(0gd-5Tc 5e71dXd6593v0Pey0oey0!0?0ic~593q1?1!1$1(cT3Scw046 al69cBeI0Bd.c}2%e21.d?2A5Ldn0`0e0v190h0?c}2:1Qc+0v1w00d:en0vexezeidRa,bx0NeB5jeS3SeU1^1%2l9q12eE2h8z867Hbrc78.8a8c8ee(c 9Ed{05d}dId$e1e367e5e70pe9ebfHeed*0!d,dPdRelc@0+0J0oeQeuew2zf91Bbva-d-0Vd/1kd;e;d^72fDdGc}dW0g0ke?2B8Sc^2:0hdmd~eydo1.fg5l0ufpdXe_8v8x0P9Ec d`0hcAdEcS0SeNe2c@c_c{c}ga5fb?90b_eH5ldBc:14gofEgm2De/0?0-0(0m0@bi0?0D1jdY1.0p1jdkdrdm0Ee_f{2hf}e?f=0J8)8ydwe/g1581o7de|c}0udugM1.0b0`1.2H0_d=dads1R2E0JfCgmd|gJ2:1jg%1kfcbye/dnd45Md#dKd%dA2Hgxc94bd7b!0?1-g}gOgQ7tb`f_gm7s0W0(2Gc,0Y5EcjeR5lhia.hm0!g{bie_bLgjeId=g)f~gWc@bGh4dZ2E0He_e{0?ea0{0h0vhJ0v9M1f0J2hek0If00(27fbh@h3htcde)gDeu0:dR2_g-fqh1aYgshC9bgldFgmc}71dw19i01.3t3UgSh@i7c5i95fe50/2Edfiii7bi4jd70ud;bAdmechqh1g9c bGhvh!e4d9db0{0:cVfqiGb#hP5fiVgC5f0B0X0v0d1k8L670H060+1j0Whkh{0ph}1kf|0k0#d-26dmhthRbzhThV7t0ChXbYhZgD5)gHdGgK0W00e4d~e^f:e9hN0pd;h3gu2F0v16iPc,bG0?010!0Jh,i^01imhc66h@dbeme4ephkg|hgh#0Ig*iTfh3_fjeWfm5Pe!e$ckfAh!1Qd?8L2teG0)fD0)gHj`hb1Aj}0-iE0=04.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)