Friday, September 12, 2014

Leetcode: Edit Distance @Python

class Solution:
    # @return an integer
    def minDistance(self, word1, word2):
        n=len(word1)
        m=len(word2)
        M=max(n,m)
        dp=[[M for i in range(m+1)] for j in range(n+1)]
        for i in range(n+1):
            dp[i][m]=n-i
        for i in range(m+1):
            dp[n][i]=m-i
        for i in reversed(range(n)):
            for j in reversed(range(m)):
                if word1[i]==word2[j]:
                    dp[i][j]=dp[i+1][j+1]
                else:
                    dp[i][j]=1+min(dp[i+1][j],dp[i][j+1],dp[i+1][j+1])
        return dp[0][0]

No comments :

Post a Comment