我试图找到需要删除多少个字符才能使两个单词相同.例如"at","cat"将为1,因为我可以删除c,"boat"和"got"将是3,因为我可以删除b,a和g以使其成为ot.我将这些单词放入字典中,将其计数作为值.然后我迭代字典并查看该键是否存在于另一个字典中,否则我将差值加1.这是一个非常低效的算法吗?
但它高估了我需要的删除次数.
def deletiondistance(firstword, secondword):
dfw = {}
dsw = {}
diff = 0
for i in range(len(firstword)):
print firstword[i]
if firstword[i] in dfw:
dfw[firstword[i]]+=1
else:
dfw[firstword[i]]=1
for j in range(len(secondword)):
if secondword[j] in dsw:
dsw[secondword[j]] +=1
else:
dsw[secondword[j]]=1
for key, value in dfw.iteritems():
if key in dsw:
#print "key exists"
pass
else:
diff +=1
print "diff",diff
Run Code Online (Sandbox Code Playgroud)