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