Menu
CoddyTech

Longest Common Substring

Você recebe duas strings, s1 e s2. Uma substring é uma sequência ininterrupta de letras retirada de uma string, como ork de clockwork. Encontre a substring mais longa que s1 e s2 têm em comum e retorne seu comprimento. Quando nenhuma letra ocorre em ambas as strings, a resposta é 0.

Função

longestCommonSubstring(s1: string, s2: string) → integer
s1string
a primeira string
s2string
a segunda string
Retornainteger
o comprimento do maior bloco de letras encontrado em ambas as strings

Restrições

  • 1 ≤ s1.length ≤ 1000
  • 1 ≤ s2.length ≤ 1000
  • s1 e s2 são compostas por letras minúsculas do inglês.

Exemplos

Entrada
s1 = "clockwork"s2 = "workshop"
Saída
4
Explicação
work fecha clockwork e abre workshop, então é uma substring comum de comprimento 4, e nenhum bloco mais longo aparece em ambos.
challenge icon

Para ir além

Você consegue testar se existe uma substring comum de comprimento L em cerca de O(n + m) de tempo usando um hash rolante e, em seguida, fazer uma busca binária em L?

Redefinir código
def longestCommonSubstring(s1, s2):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

s1 = "clockwork"
s2 = "workshop"

Saída Esperada

4