Ma fonction Python est censée prendre une entrée une chaîne (de lettres uniquement et uniquement des lettres minuscules). La fonction devrait générer true s'il n'y a pas de lettres répétitives (quels que soient leurs lettres consécutives ou non) et que c'est supposé renvoyer false s'il y a des lettres répétitives. Mon code ne vérifie que si la première lettre est répétée ou non, mais ne vérifie aucune autre lettre de la chaîne. Quelle est la solution? p>
4 Réponses :
Essayez ceci vous souhaitez retourner true code> uniquement si vous passez via tout le pour la boucle code> p> p> p>
Cela a fonctionné avec votre code! Merci beaucoup. Donc, la déclaration d'autre dans mon code initial a fait passer par une itération?
Excecidant, dans la première itération, par défaut, il retournerait toujours true code>, puis il quitterait la fonction.
Les suivants doivent rectifier.
def is_isogram(s: str):
# loop through all unique chars
for x in set(s):
if s.count(x) > 1:
return True
# terminate after looping through all chars
return False
Vous ne passez pas le premier caractère au-delà du premier caractère car dans la première itération de la boucle de la boucle, votre «d'autre» quitte la fonction si la déclaration IF renvoie false. p>
Merci pour votre réponse, mais la chose est quand j'ai entré "Deff", il est toujours retourné vrai bien que la première lettre ne soit pas répétée. Je pense donc que cela fonctionne toujours simplement une itération, que la première itération soit fausse ou vraie.
Ma solution
def is_isogram(x):
if len(str(x)) > len(set(x)):
return False
else:
return True