Menu
CoddyTech

Longest Common Substring

Ricevi due stringhe, s1 e s2. Una sottostringa è una sequenza ininterrotta di lettere presa da una stringa, come ork da clockwork. Trova la sottostringa più lunga che s1 e s2 hanno in comune e restituiscine la lunghezza. Se nessuna lettera compare in entrambe le stringhe, la risposta è 0.

Funzione

longestCommonSubstring(s1: string, s2: string) → integer
s1string
la prima stringa
s2string
la seconda stringa
Restituisceinteger
la lunghezza del blocco di lettere più lungo presente in entrambe le stringhe

Vincoli

  • 1 ≤ s1.length ≤ 1000
  • 1 ≤ s2.length ≤ 1000
  • s1 e s2 sono composte da lettere minuscole dell'alfabeto inglese.

Esempi

Input
s1 = "clockwork"s2 = "workshop"
Output
4
Spiegazione
work conclude clockwork e inizia workshop, quindi è una sottostringa comune di lunghezza 4, e non compare in entrambi alcun blocco più lungo.
challenge icon

Per approfondire

Riesci a verificare se esiste una sottostringa comune di una determinata lunghezza L in circa O(n + m) tempo con un hash rolling, e poi eseguire una ricerca binaria su L?

Ripristina il codice
def longestCommonSubstring(s1, s2):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

s1 = "clockwork"
s2 = "workshop"

Output atteso

4