mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-24 03:33:11 +01:00
Fixed bug (and added test) in distance.
This commit is contained in:
parent
1b79a300f9
commit
16374c53d6
15
src/utils.py
15
src/utils.py
@ -161,17 +161,18 @@ def distance(s, t):
|
||||
return m
|
||||
elif m == 0:
|
||||
return n
|
||||
d = range(n+1)
|
||||
for i in range(len(d)):
|
||||
d[i] = range(m+1)
|
||||
d = []
|
||||
for i in range(n+1):
|
||||
d.append([])
|
||||
for j in range(m+1):
|
||||
d[i].append(0)
|
||||
d[0][j] = j
|
||||
d[i][0] = i
|
||||
for i in range(1, n+1):
|
||||
cs = s[i-1]
|
||||
for j in range(1, m+1):
|
||||
ct = t[j-1]
|
||||
if cs == ct:
|
||||
cost = 0
|
||||
else:
|
||||
cost = 1
|
||||
cost = int(cs != ct)
|
||||
d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1]+cost)
|
||||
return d[n][m]
|
||||
|
||||
|
@ -62,6 +62,8 @@ class UtilsTest(unittest.TestCase):
|
||||
self.assertEqual(utils.distance('a', 'ab'), 1)
|
||||
self.assertEqual(utils.distance('foo', ''), 3)
|
||||
self.assertEqual(utils.distance('', 'foo'), 3)
|
||||
self.assertEqual(utils.distance('appel', 'nappe'), 2)
|
||||
self.assertEqual(utils.distance('nappe', 'appel'), 2)
|
||||
|
||||
def testAbbrev(self):
|
||||
L = ['abc', 'bcd', 'bbe', 'foo', 'fool']
|
||||
|
Loading…
Reference in New Issue
Block a user