Longest common prefix: Difference between revisions

m
fix spelling of "interstellar" :)
(→‎{{header|REXX}}: added version 2.)
m (fix spelling of "interstellar" :))
Line 9:
For a function, ''lcp'', accepting a list of strings, the following should hold true
(the empty string, <math>\varepsilon</math>, is considered a prefix of all strings):
lcp("interspecies","interstelarinterstellar","interstate") = "inters"
lcp("throne","throne") = "throne"
lcp("throne","dungeon") = <math>\varepsilon</math>
Line 61:
func main() {
for _, l := range [][]string{
{"interspecies", "interstelarinterstellar", "interstate"},
{"throne", "throne"},
{"throne", "dungeon"},
Line 74:
{{out}}
<pre>
lcp(["interspecies" "interstelarinterstellar" "interstate"]) = "inters"
lcp(["throne" "throne"]) = "throne"
lcp(["throne" "dungeon"]) = ""
Line 94:
 
main = do
print $ lcp ["interspecies","interstelarinterstellar","interstate"] -- prints "inters"
print $ lcp ["throne","throne"] -- prints "throne"
print $ lcp ["throne","dungeon"] -- prints ""
Line 129:
==ooRexx==
{{trans|REXX}}
<lang oorexx>Call assert lcp(.list~of("interspecies","interstelarinterstellar","interstate")),"inters"
Call assert lcp(.list~of("throne","throne")),"throne"
Call assert lcp(.list~of("throne","dungeon")),""
Line 166:
Return left(arg(1),i-1)</lang>
{{out}}
<pre>lcp(interspecies,interstelarinterstellar,interstate)
ok lcp="inters"
 
Line 203:
plan 7;
 
is lcp("interspecies","interstelarinterstellar","interstate"), "inters";
is lcp("throne","throne"), "throne";
is lcp("throne","dungeon"), '';
Line 225:
(subrg):
lcpt: Proc Options(main);
Call assert(lcp('interspecies interstelarinterstellar interstate'),'inters');
Call assert(lcp('throne throne'),'throne');
Call assert(lcp('throne dungeon'),'');
Line 276:
End;</lang>
{{out}}
<pre>"interspecies interstelarinterstellar interstate"
ok lcp="inters"
 
Line 305:
return os.path.commonprefix(s)
 
assert lcp("interspecies","interstelarinterstellar","interstate") == "inters"
assert lcp("throne","throne") == "throne"
assert lcp("throne","dungeon") == ""
Line 321:
zip(*s)))
 
assert lcp("interspecies","interstelarinterstellar","interstate") == "inters"
assert lcp("throne","throne") == "throne"
assert lcp("throne","dungeon") == ""
Line 359:
(require tests/eli-tester)
(test
(lcp "interspecies" "interstelarinterstellar" "interstate") => "inters"
(lcp "throne" "throne") => "throne"
(lcp "throne" "dungeon") => ""
Line 371:
=={{header|REXX}}==
===version 1===
<lang rexx>Call assert lcp("interspecies","interstelarinterstellar","interstate"),"inters"
Call assert lcp("throne","throne"),"throne"
Call assert lcp("throne","dungeon"),""
Line 410:
Return left(arg(1),i-1)</lang>
{{out}}
<pre>test lcp("interspecies","interstelarinterstellar","interstate")
ok lcp="inters"
 
Line 434:
This REXX version makes use of the &nbsp; '''compare''' &nbsp; BIF.
<lang rexx>/*REXX program computes the longest common prefix of any number of args.*/
say lcp('interspecies', "interstelarinterstellar", 'interstate')
say lcp('throne', "throne")
say lcp('throne', "dungeon")
Line 461:
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
────────── argument 1: interspecies
────────── argument 2: interstelarinterstellar
────────── argument 3: interstate
longest common prefix= inters
Line 495:
<lang scala>class TestLCP extends FunSuite {
test("shared start") {
assert(lcp("interspecies","interstelarinterstellar","interstate") === "inters")
assert(lcp("throne","throne") === "throne")
assert(lcp("throne","dungeon").isEmpty)
Line 555:
 
'Calling the function for test cases.
test = Array("interspecies,interstelarinterstellar,interstate","throne,throne","throne,dungeon","cheese",_
"","prefix,suffix")
Line 564:
 
{{out}}
<pre>Test case 0 interspecies,interstelarinterstellar,interstate = inters
Test case 1 throne,throne = throne
Test case 2 throne,dungeon = No Matching Prefix
Line 582:
}</lang>
<lang zkl>tester:=TheVault.Test.UnitTester.UnitTester();
tester.testRun(lcp.fp("interspecies","interstelarinterstellar","interstate"),Void,"inters",__LINE__);
tester.testRun(lcp.fp("throne","throne"),Void,"throne",__LINE__);
tester.testRun(lcp.fp("throne","dungeon"),Void,"",__LINE__);
Anonymous user