diff --git a/algorithmique/recursivite/anagramme.algo b/algorithmique/recursivite/anagramme.algo new file mode 100644 index 0000000..239767d --- /dev/null +++ b/algorithmique/recursivite/anagramme.algo @@ -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 diff --git a/algorithmique/recursivite/anagramme.py b/algorithmique/recursivite/anagramme.py new file mode 100644 index 0000000..5723f83 --- /dev/null +++ b/algorithmique/recursivite/anagramme.py @@ -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()