Longest common prefix: Difference between revisions
Content added Content deleted
(Added Quackery.) |
|||
Line 2,222: | Line 2,222: | ||
foo</pre> |
foo</pre> |
||
=={{header|Nim}}== |
|||
<lang Nim>import sequtils, strformat, strutils |
|||
func lcp(list: varargs[string]): string = |
|||
if list.len == 0: return |
|||
result = list[0] |
|||
for i in 1..list.high: |
|||
var newRes = "" |
|||
for j, c in result: |
|||
if j >= list[i].len or list[i][j] != c: |
|||
break |
|||
newRes.add c |
|||
result = move(newRes) |
|||
proc test(list: varargs[string]) = |
|||
let lst = list.mapIt('"' & it & '"').join(", ") |
|||
echo &"lcp({lst}) = \"{lcp(list)}\"" |
|||
test("interspecies", "interstellar", "interstate") |
|||
test("throne", "throne") |
|||
test("throne", "dungeon") |
|||
test("cheese") |
|||
test("") |
|||
test() |
|||
test("prefix", "suffix") |
|||
test("foo", "foobar")</lang> |
|||
{{out}} |
|||
<pre>lcp("interspecies", "interstellar", "interstate") = "inters" |
|||
lcp("throne", "throne") = "throne" |
|||
lcp("throne", "dungeon") = "" |
|||
lcp("cheese") = "cheese" |
|||
lcp("") = "" |
|||
lcp() = "" |
|||
lcp("prefix", "suffix") = "" |
|||
lcp("foo", "foobar") = "foo"</pre> |
|||
=={{header|Ol}}== |
=={{header|Ol}}== |