```
Public Class Distance
''' <summary>
''' Compute Levenshtein distance
''' </summary>
''' <param name="s">String 1</param>
''' <param name="t">String 2</param>
''' <returns>Distance between the two strings.
''' The larger the number, the bigger the difference.
''' </returns>
Public Function LD(s As String, t As String) As Integer
Dim n As Integer = s.Length
'length of s
Dim m As Integer = t.Length
'length of t
Dim d As Integer(,) = New Integer(n, m) {}
' matrix
Dim cost As Integer
' cost
' Step 1
If n = 0 Then
Return m
End If
If m = 0 Then
Return n
End If
' Step 2
Dim i As Integer = 0
While i <= n
d(i, 0) = System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
End While
Dim j As Integer = 0
While j <= m
d(0, j) = System.Math.Max(System.Threading.Interlocked.Increment(j), j - 1)
End While
' Step 3
For h As Integer = 1 To n
'Step 4
For f As Integer = 1 To m
' Step 5
cost = (If(t.Substring(f - 1, 1) = s.Substring(h - 1, 1), 0, 1))
' Step 6
d(h, f) = System.Math.Min(System.Math.Min(d(h - 1, f) + 1, d(h, f - 1) + 1), d(h - 1, f - 1) + cost)
Next
Next
' Step 7
Return d(n, m)
End Function
End Class
```

11,709,844 members (49,023 online)

Email

Password

Sign in using