Skip to content

Commit

Permalink
Merge pull request ZoranPandovski#417 from noblehelm/add_levenshtein_…
Browse files Browse the repository at this point in the history
…in_python

add levenshtein distance in python
  • Loading branch information
ZoranPandovski authored Oct 18, 2017
2 parents 8825f6b + 32b613a commit 5e43332
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions dp/levenshtein_distance/python/levenshtein.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
def levenshtein(first, second):
n1 = len(first)
n2 = len(second)
t = [0] * (n2 + 1)
for i in range(0,n2):
t[i] = i
for i in range(0,n1):
t[0] = i + 1
corner = i
for j in range(0,n2):
upper = t[j + 1]
if (first[i] == second[j]):
t[j + 1] = corner
else:
t[j + 1] = min(t[j], min(upper,corner)) + 1
corner = upper
return t[n2]

def test():
print(levenshtein('levenshtein','meilenstein'))
print(levenshtein('github','bitbucket'))

if __name__ == '__main__':
test()

0 comments on commit 5e43332

Please sign in to comment.