Finde den längsten Teilstring in alphabetischer Reihenfolge

7

Ich habe diesen Code, den ich in einem anderen Thema gefunden habe, aber er sortiert die Teilzeichenfolge nach zusammenhängenden Zeichen und nicht nach alphabetischer Reihenfolge. Wie korrigiere ich es für die alphabetische Reihenfolge? Es druckt lk und ich möchte ccl drucken. Danke

ps: Ich bin ein Anfänger in Python

%Vor%     
spacegame 26.10.2013, 01:43
quelle

11 Antworten

4

Versuchen Sie, dies zu ändern:

%Vor%

dazu:

%Vor%

Dies zeigt ccl für Ihre Beispieleingabe an. Der Code ist einfacher, weil Sie versuchen, ein einfacheres Problem zu lösen: -)

    
Tim Peters 26.10.2013, 02:00
quelle
13
%Vor%     
solution 26.10.2013 18:45
quelle
1

Sie können Ihren Algorithmus verbessern, indem Sie feststellen, dass die Zeichenfolge in Läufe von geordneten Teilstrings maximaler Länge aufgeteilt werden kann. Jeder geordnete Teilstring muss in einem dieser Läufe enthalten sein

Damit können Sie nur einmal durch die Zeichenfolge O (n)

iterieren %Vor%     
ejrb 22.06.2015 17:20
quelle
1

In Python ist der Zeichenvergleich im Vergleich zu Java-Script, wo die ASCII-Werte verglichen werden müssen, einfach. Laut Python

a & gt; b gibt ein Boolean False und b & gt; a gibt ein boolesches True

Die Verwendung der längsten Unterkette in alphabetischer Reihenfolge kann mit dem folgenden Algorithmus gefunden werden:

%Vor%     
kirancodify 23.06.2015 11:09
quelle
1

Auf rekursive Weise können Sie count von itertools

importieren

Oder definieren Sie eine Methode:

%Vor%

Mit dieser Methode können Sie den Wert eines Endpunkts erhalten, wenn Sie in Ihrem anallitischen Prozess einen Teilstring erstellen.

Sieht nun nach der Anallize-Methode aus (basierend auf Problem mit spacegame und Mr. ) Tim Petters Vorschlag)

%Vor%

Zum Schluss, für Test oder Ausführung:

%Vor%

Das großartige Stück dieses Jobs begann mit: spacegame und wurde von Mr. Tim Petters verwendet die nativen Str-Methoden und die Wiederverwendbarkeit des Codes .

Die Antwort ist:

Längste Teilkette in alphabetischer Reihenfolge: ccl

    
jam65st 27.06.2015 01:03
quelle
1

Verwenden Sie die Listen- und Max-Funktion, um den Code drastisch zu reduzieren.

%Vor%     
prashasthbaliga 17.01.2017 07:42
quelle
0

Etwas andere Implementierung, Aufbau einer Liste aller Teilstrings in alphabetischer Reihenfolge und Rückgabe der längsten:

%Vor%     
Andrew Winterbotham 23.06.2015 12:44
quelle
0
%Vor%     
Rishith Poloju 03.10.2016 13:01
quelle
0
%Vor%     
user3337142 26.01.2017 10:48
quelle
0

Das hat bei mir funktioniert

%Vor%

Ausgabe: Längste Teilfolge in alphabetischer Reihenfolge: ccl

    
Sai 12.03.2018 18:35
quelle
-1

Ein anderer Weg:

%Vor%     
Vladimir R 07.09.2016 03:33
quelle

Tags und Links