Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich den längsten gemeinsamen Teilstring zwischen zwei Strings in Python?
Gemeinsame Teilzeichenfolgen in zwei Zeichenfolgen finden
Die Identifizierung der gemeinsamen Teilzeichenfolge zweier Zeichenfolgen ist eine häufige Aufgabe in der Programmierung. Angenommen, wir haben zwei Eingabezeichenfolgen, wie in der Problemstellung dargestellt:
<br>string1 = "apples"<br>string2 = "appleses"<br>
In diesem Fall ist die gemeinsame Teilzeichenfolge „Äpfel“. Ebenso für das komplexere Beispiel:
<br>string1 = "Apfelkuchen verfügbar"<br>string2 = "Apfelkuchen"<br>
Die erwartete Ausgabe sollte „Apple Pie“ sein, was den gemeinsam genutzten Teilstring darstellt.
Pythonic-Lösung mit difflib
Um dieses Problem in Python effizient zu lösen, können wir nutzen das in der Standardbibliothek enthaltene Difflib-Modul. Insbesondere kann die Methode find_longest_match() in SequenceMatcher verwendet werden, um die längste gemeinsame Teilzeichenfolge zwischen zwei Zeichenfolgen zu identifizieren.
<code class="python">from difflib import SequenceMatcher string1 = "apple pie available" string2 = "come have some apple pies" match = SequenceMatcher(None, string1, string2).find_longest_match() print(match) # Output: Match(a=0, b=15, size=9) print(string1[match.a:match.a + match.size]) # Output: "apple pie" print(string2[match.b:match.b + match.size]) # Output: "apple pie"</code>
In Python-Versionen vor 3.9 erfordert die Methode find_longest_match() zusätzliche Argumente:
<code class="python">SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))</code>
Durch die Verwendung dieses Ansatzes können wir die gemeinsame Teilzeichenfolge effektiv aus einem Paar Eingabezeichenfolgen extrahieren und so die Suche nach gemeinsamen Sequenzen vereinfachen.
Das obige ist der detaillierte Inhalt vonWie finde ich den längsten gemeinsamen Teilstring zwischen zwei Strings in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!