J'ai besoin d'un code pour trouver la plus longue sous-chaîne alphabétique dans une chaîne. Ce est le code que je utilise:Recherche de la plus longue sous-chaîne alphabétique dans une chaîne plus longue
letter = s[0]
best = ''
for n in range(1, len(s)):
if len(letter) > len(best):
best = letter
if s[n] >= s[n-1]:
letter += s[n]
else:
letter = s[n]
Il fonctionne la plupart du temps, mais parfois il donne les mauvaises réponses et je suis confus pourquoi il ne fonctionne que parfois. par exemple lorsque:
s = 'maezsibmhzxhpprvx'
Il a dit que la réponse était "hpprv" alors qu'il aurait dû être "hpprvx".
Dans un autre cas, lorsque
s = 'ysdxvkctcpxidnvaepz'
Il a donné la réponse "CPX", quand il aurait dû être "aepz".
Que se passe-t-il ici?
Votre code fonctionne parfaitement bien et a la sortie attendue. – RafaelC
Il fonctionne, mais @EllaP dit clairement qu'il ne fait pas ce que l'on attendait parfois. –
Si vous voyez les réponses ci-dessous avec le correctif, il est clair qu'il n'a pas toujours la sortie attendue. –