Longest common prefix: Difference between revisions

Content added Content deleted
No edit summary
Line 3,254: Line 3,254:
["prefix", "suffix"] = ""
["prefix", "suffix"] = ""
["foo", "foobar"] = "foo"
["foo", "foobar"] = "foo"
</pre>

=={{header|XProfan}}==
<lang XProfan>Proc lcp
Parameters long liste
Declare int longest, j, L, string s,t
var int cnt = GetCount(liste)
WhileLoop 0, cnt-1
L = Len(GetString$(liste,&loop))
case &loop == 0 : longest = L
case L < longest : longest = L
EndWhile
s = GetString$(liste,0)
WhileLoop 1, cnt-1
t = GetString$(liste,&loop)
For j,1,longest
If SubStr$(s,j) <> SubStr$(t,j)
longest = j - 1
BREAK
EndIf
EndFor
If longest < 1
Clear longest
BREAK
EndIf
s = t
EndWhile
Return Left$(s,longest)
EndProc

cls
declare string s[7]
s[0] = "interspecies,interstellar,interstate"
s[1] = "throne,throne"
s[2] = "throne,dungeon"
s[3] = "throne,,throne"
s[4] = "cheese"
s[5] = ""
s[6] = "prefix,suffix"
s[7] = "foo,foobar"

WhileLoop 0,7
ClearList 0
Move("StrToList",s[&loop],",")
Print "list: ("+s[&loop]+") = "+chr$(34) + lcp(0) + chr$(34)
EndWhile

ClearList 0
WaitKey
end</lang>
{{out}}
<pre>
list: (interspecies,interstellar,interstate) = "inters"
list: (throne,throne) = "throne"
list: (throne,dungeon) = ""
list: (throne,,throne) = ""
list: (cheese) = "cheese"
list: () = ""
list: (prefix,suffix) = ""
list: (foo,foobar) = "foo"
</pre>
</pre>