, :
- , .
DLD "ABC-EFG" "ABC * EFG" - 1- " , , , ."
, 1 "ZBC-EFG" "ABC-EFG" - , , .
Python DLD implementation from http://paxe.googlecode.com/svn/trunk/paxe/Lib/Installer.py :
def dist(s1, s2):
d = {}
lenstr1 = len(s1)
lenstr2 = len(s2)
for i in xrange(-1,lenstr1+1):
d[(i,-1)] = i+1
for j in xrange(-1,lenstr2+1):
d[(-1,j)] = j+1
for i in xrange(0,lenstr1):
for j in xrange(0,lenstr2):
if s1[i] == s2[j]:
cost = 0
else:
cost = 1
d[(i,j)] = min(
d[(i-1,j)] + 1,
d[(i,j-1)] + 1,
d[(i-1,j-1)] + cost,
)
if i>1 and j>1 and s1[i]==s2[j-1] and s1[i-1] == s2[j]:
d[(i,j)] = min (d[(i,j)], d[i-2,j-2] + cost)
return d[lenstr1-1,lenstr2-1]
source
share