Advertisement
Guest User

Untitled

a guest
Oct 19th, 2021
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.49 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. from functools import lru_cache
  4.  
  5. memoize = lru_cache(None)
  6.  
  7.  
  8. def levenshtein_distance(s, t):
  9.     @memoize
  10.     def d(i, j):
  11.         return (
  12.             i
  13.             if j == 0
  14.             else j
  15.             if i == 0
  16.             else d(i - 1, j - 1)
  17.             if s[i - 1] == t[j - 1]
  18.             else min(d(i - 1, j) + 1, d(i, j - 1) + 1, d(i - 1, j - 1) + 1)
  19.         )
  20.  
  21.     return d(len(s), len(t))
  22.  
  23.  
  24. assert levenshtein_distance("snowy", "sunny") == 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement