Menu
CoddyTech

Longest Common Substring

Du erhältst zwei Zeichenfolgen, s1 und s2. Eine Teilzeichenfolge ist eine zusammenhängende Folge von Buchstaben, die einer Zeichenfolge entnommen wird, zum Beispiel ork aus clockwork. Finde die längste Teilzeichenfolge, die s1 und s2 gemeinsam haben, und gib ihre Länge zurück. Wenn kein Buchstabe in beiden Zeichenfolgen vorkommt, lautet die Antwort 0.

Funktion

longestCommonSubstring(s1: string, s2: string) → integer
s1string
die erste Zeichenkette
s2string
die zweite Zeichenkette
Gibt zurückinteger
die Länge des längsten Buchstabenblocks, der in beiden Zeichenfolgen vorkommt

Einschränkungen

  • 1 ≤ s1.length ≤ 1000
  • 1 ≤ s2.length ≤ 1000
  • s1 und s2 bestehen aus Kleinbuchstaben des englischen Alphabets.

Beispiele

Eingabe
s1 = "clockwork"s2 = "workshop"
Ausgabe
4
Erklärung
work steht am Ende von clockwork und am Anfang von workshop. Daher ist es eine gemeinsame Teilzeichenfolge der Länge 4, und kein längerer Block kommt in beiden vor.
challenge icon

Weiterführende Frage

Kannst du mit einem rollierenden Hash in etwa O(n + m) Zeit testen, ob es eine gemeinsame Teilzeichenfolge der Länge L gibt, und anschließend eine binäre Suche über L durchführen?

Code zurücksetzen
def longestCommonSubstring(s1, s2):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

s1 = "clockwork"
s2 = "workshop"

Erwartete Ausgabe

4