python3动态规划

最长公共子串

http://www.nowcoder.com/questionTerminal/f33f5adc55f444baa0e0ca87ad8a6aac

实际上是最长连续公共子串

class Solution:
    def LCS(self , str1 , str2 ):
        n, m = len(str1), len(str2)
        dp = [[0] * (m+1) for _ in range(n+1)]
        p = (0,0)
        for i in range(1,n+1):
            for j in range(1,m+1):
                tmp = int(str1[i-1] == str2[j-1])
                dp[i][j] = dp[i-1][j-1] + tmp if tmp else 0
                p = (i,j) if dp[i][j] > dp[p[0]][p[1]] else p
        return str1[p[0]-dp[p[0]][p[1]]:p[0]]
全部评论
我的也是超时
点赞 回复 分享
发布于 03-13 11:20 广东
这样写第7个样例会超时,不知道要怎么优化
点赞 回复 分享
发布于 2022-04-09 13:12

相关推荐

点赞 评论 收藏
分享
06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务