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> |
||