Jump to content

Levenshtein distance: Difference between revisions

m
m (→‎Implementation 2: remove extra newlines)
Line 2,162:
=={{header|FutureBasic}}==
Based on Wikipedia algorithm. Suitable for Pascal strings.
<lang futurebasic>window 1
include "ConsoleWindow"
 
local fn LevenshteinDistance( aStr as Str255, bStr as Str255 ) as long
dim as long m, n, i, j, min, k, l
dim as long distance( 255, 255 )
 
m = len$(aStr)
n = len$(bStr)
for i = 0 to m
distance( i, 0 ) = i
next
 
for j = 0 to n
distance( 0, j ) = j
next
for j = 1 to n
for i = 1 to m
if mid$( aStr, i, 1 ) == mid$( bStr, j, 1 )
distance( i, j ) = distance( i-1, j-1 )
else
min = distance( i-1, j ) + 1
k = distance( i, j - 1 ) + 1
l = distance( i-1, j-1 ) + 1
if k < min then min = k
if l < min then min = l
distance( i, j ) = min
end if
next
next
end fn = distance( m, n )
 
Line 2,207 ⟶ 2,206:
 
for i = 0 to 4
print "1st string = "; testStr( i, 0 )
print "2nd string = "; testStr( i, 1 )
print "Levenshtein distance ="; fn LevenshteinDistance( testStr( i, 0 ), testStr( i, 1 ) )
print
next
 
</lang>
HandleEvents</lang>
 
Output:
416

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.