Day 17: LeetCode 1143. Longest Common Subsequence

Day 17: LeetCode 1143. Longest Common Subsequence

Source

https://leetcode.com/problems/longest-common-subsequence/

1.题意:

经典题: 找最长的共同子序列。

2.思路:

  • 待图解

3.程序码:

class Solution:
    def longestCommonSubsequence(self, text1: str, text2: str) -> int:
        len1 = len(text1) # abcde(5) -- row
        len2 = len(text2) # ace(3) -- col
        
        R = [[0 for _ in range(len2+1)] for _ in range(len1+1)]
        #print(R)
        '''
        for i in range(len1+1):
            for j in range(len2+1):
                print(R[i][j],end="")
            print()
        '''    
        # len1: row
        # len2: col
        
        for i in range(len1+1):
            for j in range(len2+1):
                if i==0 or j==0:
                    R[i][j] = 0
                    
                elif text1[i-1]==text2[j-1]: #R-i:text-(i-1),R-j:text-(j-1) 
                    R[i][j] = R[i-1][j-1]+1  #左上位置的值+1
                else:
                    R[i][j] = max(R[i-1][j],R[i][j-1]) #上一row同一col vs 上一col同一row 取大
        #print(R)            
        return R[len1][len2]            
                    
                    
                    
                    
                    

Result

待优化

补充

R = [[0 for _ in range(col+1)] for _ in range(row+1)]
建立row+1个列 col+1个行

参考

  1. https://leetcode.com/problems/longest-common-subsequence/discuss/436719/Python-very-detailed-solution-with-explanation-and-walkthrough-step-by-step
  2. https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/

Backup article

Day17 at HackMD


<<:  Day17-Session 管理(一)

>>:  Day17. 老鼠,老虎傻傻分不清楚?- Mouse(下)

Day1_前言

哈罗大家好呀~在这里的30天,会一层一层的带给大家制做网页的技巧和方法,我们时常在网页看到的样式及功...

Day 9 整理重复烦人的程序码!

该文章同步发布於:我的部落格 昨天我们实作了把 example 给拆开,并且让整个测试更具备逻辑。...

为了转生而点技能-javascript,day3(陈述式及表达式、函式陈述式与函式表达式

陈述式(statement) 定义:单行程序码,只有用来命令执行的功能,无法回传值。 流程控制类:i...

离开是为了面对更好的自己

嗨各位大大好,我是 Robin~ 今天要来挑战一个我以前不敢写的主题, 就是职涯方面的文章。 今天会...

使用 JavaScript API 开发 Neo4j 应用程序

昨天分享过了 Neo4j HTTP API 的使用,所以如果你知道怎麽使用 JavaScript 呼...