题目:
You are given two strings, line1 and line2. Answer, what is the smallest number of operations you need to do in order to transform line1 into the line2?
Possible operations:
Delete one letter from one of the strings.
Insert one letter into one of the strings.
Replace one of the letters in one of the strings with another letter.
Input: Two arguments - two strings.
Output: An int, the minimum number of operations.
Example:
steps_to_convert(‘line1’, ‘line1’) == 0
steps_to_convert(‘line1’, ‘line2’) == 1
steps_to_convert(‘ine’, ‘line2’) == 2
链接:
https://py.checkio.org/en/mission/short-string-conversion/
代码:
def steps_to_convert(line1, line2):
import difflib
x = len(line1)-len(line2)
if x < 0:
x =-x
d = difflib.Differ()
mm = list(d.compare(line1,line2))
y = 0
for i in mm:
if '-' in i:
y += 1
elif '+' in i:
y += 1
if int(y/2) >= x:
r = int(y/2)
else:
r = x
return r