美文网首页
360经典笔试 最小编辑距离(python)

360经典笔试 最小编辑距离(python)

作者: 翩翩公子银圈圈 | 来源:发表于2018-09-18 16:30 被阅读0次

    已知有两个字符韦str1,str2 ,现在需要把str1通过若干次操作修改成str2。可使用的操作包括插入,删除,替换,每个操作每次只能操作一个字符,求最少的操作次数。
    示例:
    输入:abcd
    abce
    输出:1
    原理:https://blog.csdn.net/chichoxian/article/details/53944188
    写的非常清晰易懂
    代码:

    import string
    def editDist(s1, s2):
        m, n = len(s1) + 1, len(s2) + 1
        matrix=[[0]*n for i in range(m)]
        matrix[0]=[i for i in range(n)]
        for i in range(m):
            matrix[i][0]=i
        for i in range(1,m):
            for j in range(1,n):
                if(s1[i-1]==s2[j-1]):
                    temp=0
                else:
                    temp=1
                matrix[i][j]=min(matrix[i-1][j]+1,matrix[i][j-1]+1,matrix[i-1][j-1]+temp)
        return matrix[m-1][n-1]
    # res = editDist('cafe', 'coffee')
    print("请输入str1")
    s1=str(input())
    print("请输入str2")
    s2=str(input())
    mindist=editDist(s1,s2)
    print(mindist)
    
    

    相关文章

      网友评论

          本文标题:360经典笔试 最小编辑距离(python)

          本文链接:https://www.haomeiwen.com/subject/vkypnftx.html