带娃刷题第335天 动态规划算法 最长公共子串 LCS 递归 记忆化搜索

in #cn2 days ago

Longest Common Subsequence

class Solution:
    def longestCommonSubsequence(self, a: str, b: str) -> int:
        n = len(a)
        m = len(b)
        @cache
        def lcs(i, j):
          if i < 0 or j < 0:
          return 0
          if a[i] == b[j]:
          return 1 + lcs(i - 1, j - 1)
          return max(lcs(i, j - 1), lcs(i - 1, j))
        ans = lcs(n - 1, m - 1)
        return ans

67de68faca8beed315cf03571d908de8.jpg

c528c0880cf5e4b53e8a2f9ae48eb80f.jpg

071851a2b0a9f8d133f761c5dfb83c03.jpg

576a2fcdfff3c89f0c59a496d0ddf17c.jpg

03c85c8d57886e28e9edf332fa3418c1.jpg

0ceeb65dce2b8596a67d3fee10c64867.jpg

image.png

Sort:  

Great post! Featured in the hot section by @punicwax.