29 lines
693 B
Plaintext
29 lines
693 B
Plaintext
func lComSubStr(w1, w2) {
|
|
var (len, end) = (0, 0)
|
|
var mat = Array.Empty(w1.Length() + 1, () => Array.Empty(w2.Length() + 1, 0))
|
|
var (i, j) = (0, 0)
|
|
|
|
for sLett in w1 {
|
|
for tLett in w2 {
|
|
if tLett == sLett {
|
|
let curLen = mat[i][j] + 1
|
|
mat[i + 1][j + 1] = curLen
|
|
if curLen > len {
|
|
len = curLen
|
|
end = i
|
|
}
|
|
}
|
|
j += 1
|
|
}
|
|
j = 0
|
|
i += 1
|
|
}
|
|
String(values: w1).Substring((end + 1) - len, len)
|
|
}
|
|
|
|
func comSubStr(w1, w2) {
|
|
return String(lComSubStr(w1.Iterate().ToArray(), w2.Iterate().ToArray()))
|
|
}
|
|
|
|
comSubStr("thisisatest", "testing123testing") // "test"
|