Longest common substring: Difference between revisions

Added solution for Action!
(Added Algol 68)
(Added solution for Action!)
Line 41:
<pre>
test
</pre>
 
=={{header|Action!}}==
<lang Action!>BYTE Func Equals(CHAR ARRAY a,b)
BYTE i
 
IF a(0)#b(0) THEN
RETURN (0)
FI
 
FOR i=1 TO a(0)
DO
IF a(i)#b(i) THEN
RETURN (0)
FI
OD
RETURN (1)
 
PROC Lcs(CHAR ARRAY a,b,res)
CHAR ARRAY t(100)
BYTE i,j,len
 
IF a(0)<b(0) THEN
len=a(0)
ELSE
len=b(0)
FI
 
WHILE len>0
DO
FOR i=1 to a(0)-len+1
DO
SCopyS(res,a,i,i+len-1)
FOR j=1 to b(0)-len+1
DO
SCopyS(t,b,j,j+len-1)
IF Equals(res,t) THEN
RETURN
FI
OD
OD
len==-1
OD
res(0)=0
RETURN
 
PROC Test(CHAR ARRAY a,b)
CHAR ARRAY res(100)
 
Lcs(a,b,res)
PrintF("lcs(""%S"",""%S"")=""%S""%E",a,b,res)
RETURN
 
PROC Main()
Test("thisisatest","testing123testing")
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Longest_common_substring.png Screenshot from Atari 8-bit computer]
<pre>
lcs("thisisatest","testing123testing")="test"
</pre>
 
Anonymous user