17 lines
447 B
Text
17 lines
447 B
Text
|
|
F longest_common_substring(s1, s2)
|
|||
|
|
V ir = 0
|
|||
|
|
V jr = -1
|
|||
|
|
L(i1) 0 .< s1.len
|
|||
|
|
V? i2 = s2.find(s1[i1])
|
|||
|
|
L i2 != N
|
|||
|
|
V (j1, j2) = (i1, i2)
|
|||
|
|
L j1 < s1.len & j2 < s2.len & s2[j2] == s1[j1]
|
|||
|
|
I j1 - i1 >= jr - ir
|
|||
|
|
(ir, jr) = (i1, j1)
|
|||
|
|
j1++
|
|||
|
|
j2++
|
|||
|
|
i2 = s2.find(s1[i1], i2 + 1)
|
|||
|
|
R s1[ir..jr]
|
|||
|
|
|
|||
|
|
print(longest_common_substring(‘thisisatest’, ‘testing123testing’))
|