编辑距离

来源:互联网 发布:如何查询mac地址 编辑:程序博客网 时间:2024/05/29 03:07
def init(alist, num1, num2):dplist = alistfor i in range(num1 + 1):dplist.append([])for i in range(num1 + 1):for j in range(num2 + 1):dplist[i].append(0)for i in range(1, num1 + 1):dplist[i][0] = ifor j in range(1, num2 + 1):dplist[0][j] = jdef dp(alist, list1, list2):num1 = len(list1)num2 = len(list2)for i in range(1, num1 + 1):for j in range(1, num2 + 1):if list1[i - 1] != list2[j - 1]:alist[i][j] = min(alist[i][j - 1],   alist[i - 1][j - 1],   alist[i - 1][j]) + 1else:alist[i][j] = min(alist[i][j - 1],   alist[i - 1][j - 1],   alist[i - 1][j])for i in range(0, num1 + 1):for j in range(0, num2 + 1):if j == num2:print alist[i][j]else: print alist[i][j], '  ',return alist[num1][num2]def levenshtein(str1, str2):alist = []list1 = [i for i in str1]list2 = [i for i in str2]num1 = len(list1)num2 = len(list2)if num1 == 0:return num2if num2 == 0:return num1init(alist,num1, num2)return dp(alist, list1, list2)if __name__ == '__main__':        print levenshtein('sitting', 'kitten')

0 0