diff --git a/algorithmique/recursivite/palindrome.algo b/algorithmique/recursivite/palindrome.algo new file mode 100644 index 0000000..f0a2255 --- /dev/null +++ b/algorithmique/recursivite/palindrome.algo @@ -0,0 +1,15 @@ +Algorithme : Vérifie si un mot est palidrome + +Début + Fonction EstPalindrome(Mot : str) : bool + Si Mot[0] != Mot[Longueur(Mot) - 1] + Retourner(Faux) + Sinon si Longueur(Mot) < 2 /* vrai pour 0 ou 1 lettre */ + Retourner(Vrai) + Sinon + Mot.Effacer(0) /* efface la première lettre */ + Mot.Effacer(Longueur(Mot) - 1) /* efface la dernière lettre */ + Retourner(EstPalindrome(Mot)) + FinSi + FinFonction +Fin diff --git a/algorithmique/recursivite/palindrome.py b/algorithmique/recursivite/palindrome.py new file mode 100644 index 0000000..4f0eb3d --- /dev/null +++ b/algorithmique/recursivite/palindrome.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +"""Vérifie si un mot est palidrome""" + + +def main() -> None: + print(EstPalindrome("aziza")) + print(EstPalindrome("alga")) + +def EstPalindrome(Mot : str) -> bool: + if Mot[0] != Mot[-1]: + return False + elif len(Mot) < 2: # vrai pour 0 ou 1 lettre + return True + else: + return EstPalindrome(Mot[1:-1]) + + +if __name__ == "__main__": + main()