determine if two strings are in one edit distance
there are two cases we need to consider:
1.they are in the same length but one char different
2. they have exactly one char different with one length different
code is as follow.
def editone(str1,str2):
m=len(str1)
n=len(str2)
if m>n:
return editone(str2,str1)
##make sure len(str2)>len(str1)
if n-m>1:# if the dif is greater than 1 then false
return False
shift=n-m## see the dif
i=0
while i<m and str1[i]==str2[i]:
i+=1
if i==m:
return shift>0## if m==n and they are all the same return false
if shift==0:## otheriwse check they are only one char dif
i+=1
while i<m and str1[i]==str2[i+shift]:
i+=1
return i==m
print editone('a','b')