Menu
CoddyTech

Longest Common Substring

On te donne deux chaînes, s1 et s2. Une sous-chaîne est une suite ininterrompue de lettres tirées d’une chaîne, comme ork dans clockwork. Trouve la plus longue sous-chaîne commune à s1 et s2, puis retourne sa longueur. Si aucune lettre n’apparaît dans les deux chaînes, la réponse est 0.

Fonction

longestCommonSubstring(s1: string, s2: string) → integer
s1string
la première chaîne
s2string
la deuxième chaîne
Renvoieinteger
la longueur du plus long bloc de lettres présent dans les deux chaînes

Contraintes

  • 1 ≤ s1.length ≤ 1000
  • 1 ≤ s2.length ≤ 1000
  • s1 et s2 sont composés de lettres minuscules anglaises.

Exemples

Entrée
s1 = "clockwork"s2 = "workshop"
Sortie
4
Explication
work se trouve à la fin de clockwork et au début de workshop : c’est donc une sous-chaîne commune de longueur 4, et aucun bloc plus long n’apparaît dans les deux.
challenge icon

Pour aller plus loin

Peux-tu vérifier si une sous-chaîne commune de longueur donnée L existe en environ O(n + m) avec un hachage roulant, puis effectuer une recherche dichotomique sur L ?

Réinitialiser le code
def longestCommonSubstring(s1, s2):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

s1 = "clockwork"
s2 = "workshop"

Résultat attendu

4