34 lines
633 B
Python
34 lines
633 B
Python
import textwrap
|
|
import difflib
|
|
|
|
def onestepchange(start, dest):
|
|
|
|
ret = ""
|
|
|
|
for i, s in enumerate(difflib.ndiff(start, dest)):
|
|
# print(i)
|
|
# print(s)
|
|
|
|
if s[0] == '-':
|
|
return ret + start[i+1:]
|
|
|
|
if s[1] == '+':
|
|
return ret + s[-1] + start[i:]
|
|
|
|
ret = ret + s[-1]
|
|
|
|
if len(ret) > len(start):
|
|
return ret
|
|
|
|
if ret[i] != start[i]:
|
|
return ret + start[i:]
|
|
|
|
return ret
|
|
|
|
def countsteps(start, dest):
|
|
step_count = 0
|
|
while start != dest:
|
|
start = onestepchange(start, dest)
|
|
step_count += 1
|
|
return step_count
|