Longest common substring: Difference between revisions
Content added Content deleted
m (added a word "Write a function THAT returns ...) |
(Added Dyalect programming language) |
||
Line 390: | Line 390: | ||
{{out}} |
{{out}} |
||
<pre>test</pre> |
<pre>test</pre> |
||
=={{header|Dyalect}}== |
|||
{{trans|Swift}} |
|||
<lang dyalect>func lComSubStr(w1, w2) { |
|||
var (len, end) = (0, 0) |
|||
var mat = Array.empty(w1.len() + 1, () => Array.empty(w2.len() + 1, 0)) |
|||
var (i, j) = (0, 0) |
|||
for sLett in w1 { |
|||
for tLett in w2 { |
|||
if tLett == sLett { |
|||
const 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).sub((end + 1) - len, len) |
|||
} |
|||
func comSubStr(w1, w2) { |
|||
return String(lComSubStr(w1.iter().toArray(), w2.iter().toArray())) |
|||
} |
|||
comSubStr("thisisatest", "testing123testing") // "test"</lang> |
|||
=={{header|Elixir}}== |
=={{header|Elixir}}== |