1
- def compute_transform_tables (s1 , s2 , insert_cost , delete_cost , replace_cost , swap_cost , ignore_case = False ):
1
+ def compute_transform_tables (
2
+ s1 , s2 , insert_cost , delete_cost , replace_cost , swap_cost , ignore_case = False
3
+ ):
2
4
if ignore_case :
3
5
s1 , s2 = s1 .lower (), s2 .lower ()
4
6
@@ -12,17 +14,17 @@ def compute_transform_tables(s1, s2, insert_cost, delete_cost, replace_cost, swa
12
14
# Initialize base cases
13
15
for i in range (1 , m + 1 ):
14
16
dp [i ][0 ] = i * delete_cost
15
- op [i ][0 ] = 'D' + s1 [i - 1 ]
17
+ op [i ][0 ] = "D" + s1 [i - 1 ]
16
18
for j in range (1 , n + 1 ):
17
19
dp [0 ][j ] = j * insert_cost
18
- op [0 ][j ] = 'I' + s2 [j - 1 ]
20
+ op [0 ][j ] = "I" + s2 [j - 1 ]
19
21
20
22
# Fill DP tables
21
23
for i in range (1 , m + 1 ):
22
24
for j in range (1 , n + 1 ):
23
25
if s1 [i - 1 ] == s2 [j - 1 ]:
24
26
dp [i ][j ] = dp [i - 1 ][j - 1 ]
25
- op [i ][j ] = 'C' + s1 [i - 1 ]
27
+ op [i ][j ] = "C" + s1 [i - 1 ]
26
28
else :
27
29
replace = dp [i - 1 ][j - 1 ] + replace_cost
28
30
insert = dp [i ][j - 1 ] + insert_cost
@@ -33,12 +35,10 @@ def compute_transform_tables(s1, s2, insert_cost, delete_cost, replace_cost, swa
33
35
dp [i ][j ] = min_cost
34
36
35
37
if min_cost == replace :
36
- op [i ][j ] = 'R' + s2 [j - 1 ]
38
+ op [i ][j ] = "R" + s2 [j - 1 ]
37
39
elif min_cost == insert :
38
- op [i ][j ] = 'I' + s2 [j - 1 ]
40
+ op [i ][j ] = "I" + s2 [j - 1 ]
39
41
else :
40
- op [i ][j ] = 'D' + s1 [i - 1 ]
42
+ op [i ][j ] = "D" + s1 [i - 1 ]
41
43
42
44
return dp , op
43
-
44
-
0 commit comments