Écrivez une fonction est_isogramme(ch: str) qui prend en entrée une chaîne de caractères ch et qui renvoie True si ch est un isogramme (c’est-à-dire s’il n’y a aucune lettre qui se répète), et False sinon.
Contraintes :
- La chaîne de caractères
chne contiendra que des lettres minuscules (a à z). - La chaîne de caractères
chaura une longueur inconnue.
Indications :
Vous pouvez utiliser un tableau de booléens pour enregistrer les lettres déjà rencontrées et vérifier si la lettre courante a déjà été enregistrée. Si c’est le cas, vous pouvez renvoyer False, sinon vous pouvez enregistrer la lettre courante et continuer à parcourir le texte jusqu’à ce que vous ayez parcouru toutes les lettres. Si vous arrivez à la fin du texte sans avoir rencontré de lettre répétée, vous pouvez renvoyer True.
Afficher la solution
def est_isogramme(ch: str) :
# Initialisation du tableau de booléens qui enregistre les lettres rencontrées
letteres = [False] * 26
# Rep==0, c-à-d aucune lettre ne se répète
rep=0
# Parcours de la chaîne de caractères
for c in ch:
print(c)
# Conversion de la lettre en un indice de 0 à 25
index = ord(c) - ord('a')
# Si la lettre a déjà été rencontrée, on renvoie False
if letteres[index]:
rep+=1
# Si la lettre n'a pas encore été rencontrée, on l'enregistre
letteres[index] = True
# Si toutes les lettres ont été parcourues sans rencontrer de lettre répétée (rep==0), on renvoie True
return rep==0