Add anagramme
This commit is contained in:
parent
33803dfbc9
commit
667b0f7488
2 changed files with 38 additions and 0 deletions
15
algorithmique/recursivite/anagramme.algo
Normal file
15
algorithmique/recursivite/anagramme.algo
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
Algorithme : Vérifie si deux chaînes S1 et S2 sont anagrammes
|
||||||
|
|
||||||
|
Début
|
||||||
|
Fonction SontAnagrammes(S1 : str, S2 : str) : bool
|
||||||
|
Si Longueur(S1) = Longueur(S2) = 0
|
||||||
|
Retourner(Vrai)
|
||||||
|
Sinon Si Longueur(S1) != Longueur(S2)
|
||||||
|
Retourner(Faux)
|
||||||
|
Sinon
|
||||||
|
lettre <- Dépiler(S1)
|
||||||
|
S2.Supprimer(lettre) /* Si la lettre n'est pas trouvée, laisser S2 tel quel */
|
||||||
|
Retourner(SontAnagrammes(S1, S2))
|
||||||
|
FinSi
|
||||||
|
FinFonction
|
||||||
|
Fin
|
23
algorithmique/recursivite/anagramme.py
Normal file
23
algorithmique/recursivite/anagramme.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
"""Vérifie si deux chaînes S1 et S2 sont anagrammes"""
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
print(SontAnagrammes("chien", "niche"))
|
||||||
|
|
||||||
|
|
||||||
|
def SontAnagrammes(S1 : str, S2 : str) -> bool:
|
||||||
|
if len(S1) == 0 and len(S2) == 0:
|
||||||
|
return True
|
||||||
|
elif len(S1) != len(S2):
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
lettre = S1[0]
|
||||||
|
S1 = S1[1:]
|
||||||
|
S2 = S2.replace(lettre, "", 1)
|
||||||
|
return SontAnagrammes(S1, S2)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in a new issue