RosettaCodeData/Task/Longest-common-substring/Langur/longest-common-substring.langur

17 lines
386 B
Text
Raw Permalink Normal View History

2024-07-13 15:19:22 -07:00
val lcs = fn(s1, s2) {
var l, r, sublen = 1, 0, 0
for i of s1 {
for j in i .. len(s1) {
2025-02-27 18:35:13 -05:00
if not matching(s2, by=s2s(s1, of=i .. j)): break
2024-07-13 15:19:22 -07:00
if sublen <= j - i {
l, r = i, j
sublen = j - i
2023-07-01 11:58:00 -04:00
}
}
}
2024-07-13 15:19:22 -07:00
if r == 0: return ""
2025-02-27 18:35:13 -05:00
s2s s1, of=l .. r
2023-07-01 11:58:00 -04:00
}
2024-07-13 15:19:22 -07:00
writeln lcs("thisisatest", "testing123testing")