From cd77f04cdd42c0463bfeedf4d952d37d8575b1df Mon Sep 17 00:00:00 2001 From: "flyingscorpio@arch-desktop" Date: Fri, 17 Sep 2021 15:30:06 +0200 Subject: [PATCH] Add palindrome --- algorithmique/recursivite/palindrome.algo | 15 +++++++++++++++ algorithmique/recursivite/palindrome.py | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 algorithmique/recursivite/palindrome.algo create mode 100644 algorithmique/recursivite/palindrome.py 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()