题解 | #最长公共子序列(一)#

最长公共子序列(一)

http://www.nowcoder.com/practice/8cb175b803374e348a614e34b80ae191

两个字符串求公共子序列,利用二维 dp; 转移方程为 dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) s1[i] != s2[j] dp[i][j] = dp[i - 1][j - 1] + 1 s1[i] == s2[j] dp 长宽为字符串长度 + 1 将 dp 基础赋值加在遍历中

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# s1和s2最长公共子序列的长度
# @param s1 string字符串 
# @param s2 string字符串 
# @return int整型
#
class Solution:
    def LCS(self , s1: str, s2: str) -> int:
        # write code here
        dp = [[0 for _ in range(len(s2) + 1)] for _ in range(len(s1) + 1)]
        for i in range(1, len(s1) + 1):
            for j in range(1, len(s2) + 1):
                if s1[i - 1] == s2[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]
题解 文章被收录于专栏

算法题解

全部评论

相关推荐

03-29 17:05
门头沟学院 Java
asdasdasda...:我前段时间找工作焦虑,有几天连续熬夜熬穿了,然后心脏突然不舒服,立马躺床上睡觉了,然后第二天还是不舒服,去看医生说是心率不齐,吓得我后面天天早早睡觉,调养身体,过了好几天才好过来。所以真的,工作这些东西哪有那么重要,最多钱多一点钱少一点,降低物欲。活着才是最重要的,现在想想真的后怕
如何排解工作中的焦虑
点赞 评论 收藏
分享
牛客93169152...:可以发邮件,我停了三天没收到链接,发邮件问了一下,十分钟后就有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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