Longest common substring: Difference between revisions

Added Algol 68
(Added Algol 68)
Line 113:
}</lang>
<lang aime>o_(longest("thisisatest", "testing123testing"), "\n");</lang>
 
=={{header|ALGOL 68}}==
<lang algol68>BEGIN
# returns the longest common substring of s and t #
PROC longest common substring = ( STRING s, t )STRING:
BEGIN
STRING s1 = s[ @ 1 ]; # normalise bounds to 1 : ... #
STRING s2 = t[ @ 1 ];
STRING result := "";
INT result len := 0;
FOR i TO UPB s1 DO
FOR j TO UPB s2 DO
IF s1[ i ] = s2[ j ] THEN
INT k := 1;
WHILE INT ik = i + k;
INT jk = j + k;
IF ik > UPB s1 OR jk > UPB s2
THEN FALSE
ELSE s1[ ik ] = s2[ jk ]
FI
DO
k +:= 1
OD;
IF k > result len THEN
# found a longer substring #
result len := k;
result := s1[ i : ( i + k ) - 1 ]
FI
FI
OD
OD;
result
END # longest common substring # ;
 
# task test case #
print( ( longest common substring( "thisisatest", "testing123testing" ), newline ) )
END</lang>
{{out}}
<pre>
test
</pre>
 
=={{header|AppleScript}}==
3,045

edits