Levenshtein distance: Difference between revisions

Content added Content deleted
(Go solution)
No edit summary
Line 396: Line 396:
n = LevenshteinDistance("kitten", "sitting")
n = LevenshteinDistance("kitten", "sitting")
MessageRequester("Info","Levenshtein Distance= "+Str(n))</lang>
MessageRequester("Info","Levenshtein Distance= "+Str(n))</lang>

=={{header|Python}}==
Implementation of the wikipedia algorithm, optimized for memory
<lang python>
def levenshteinDistance(s1,s2):
if len(s1) > len(s2):
s1,s2 = s2,s1
distances = range(len(s1) + 1)
for index2,char2 in enumerate(s2):
newDistances = [index2+1]
for index1,char1 in enumerate(s1):
if char1 == char2:
newDistances.append(distances[index1])
else:
newDistances.append(1 + min((distances[index1],distances[index1+1],newDistances[-1])))
distances = newDistances
return distances[-1]

print levenshteinDistance("kitten","sitting"),levenshteinDistance("rosettacode","raisethysword")
</lang>

Output:
<pre>
3 8
</pre>


=={{header|Ruby}}==
=={{header|Ruby}}==