我试图找出需要删除多少个字符才能使两个单词相同。例如,“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
deletiondistance("Hello", "Hello, world")
的输出应该是0
。 - DYZdeletiondistance("Hello", "Helloworld")
返回0
。 - DYZ