Ich versuche eine Funktion zu schreiben, die den längsten Teilstring von s zurückgibt, in dem die Buchstaben in alphabetischer Reihenfolge vorkommen. Zum Beispiel, wenn s = 'azcbobobegghakl'
, sollte die Funktion 'beggh' zurückgebenWie bekomme ich den längsten alphabetisch geordneten Teilstring in Python?
Hier ist meine Funktion, die immer noch nicht abgeschlossen ist, aber es gibt nicht die Liste der Sub; die Rückkehr Fehler ist:
"IndexError: string index out of range"
def longest_substring(s):
sub=[]
for i in range (len(s)-1):
subs=s[i]
counter=i+1
while ord(s[i])<ord(s[counter]):
subs+=s[counter]
counter+=1
sub.append(subs)
return sub
wenn 'counter' überschreitet die' len (s) '? in 'while' Schleife und ich denke, dass Ihr Fall in dieser Eingabe fehlschlägt:' acdb', weil Sie versuchen, alle verbleibenden Zeichen mit dem ersten Zeichen 'a' zu vergleichen, so gibt es Antwort als 'acdb' was falsch ist .. Antwort sollte sein 'acd' Ich denke .. –
https://en.wikipedia.org/wiki/Longest_increasing_subsequence –
@ cricket_007 das ist eigentlich nicht richtig ... Untersequenzen können Elemente überspringen! – wim