class(object): defminDistance(self, w1, w2): """ :type word1: str :type word2: str :rtype: int """ ifnot w1: return len(w2) ifnot w2: return len(w1) m,n = len(w1), len(w2) dp = [[1]*n for _ in range(m)] for i in range(m): if w1[i] != w2[0]: dp[i][0] = 0 else: break for j in range(n): if w1[0] != w2[j]: dp[0][j] = 0 else: break
for i in range(1,m): for j in range(1,n): if w1[i] == w2[j]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j], dp[i][j-1]) l = dp[-1][-1] return m - l + n - l
1307 / 1307 test cases passed. diffculty: medium Runtime: 180 ms
近期评论