LC.1143. Longest Common Subsequence

LC.1143. Longest Common Subsequence_第1张图片

class Solution(object):
    def longestCommonSubsequence(self, text1, text2):
        """
        最长公共子序列问题
        dp[i][j] : text1[:i+1] 和 text2[:j+1] longest common sequence
        """
        dp = [[0] * (len(text2)+1) for _ in range(len(text1)+1)]
        for i in range(1,len(dp)):
            for j in range(1,len(dp[0])):
                if text1[i-1] == text2[j-1]:
                    dp[i][j] = dp[i-1][j-1] + 1
                else:
                    dp[i][j] = max(dp[i-1][j], dp[i][j-1])
        return dp[-1][-1]

你可能感兴趣的:(LeetCode)