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

最长公共子序列(一)

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]
题解 文章被收录于专栏

算法题解

全部评论

相关推荐

实习回来快一个月了,海投海笔海测全干了,今天面了两个真的有点心碎,好难啊! 感觉现在就是纯碰瓷互联网,焦虑,,, 阿里云快给我泡出来!!!
小肥罗:别焦虑,心态不好影响健康,心态放平哦,我可以告诉你,我大三的暑假拿了15份offer,但是我投递了300+企业,整个暑假,我都是边学习,边改简历,边刷题,边投递简历,边应对笔试,面试,一天三家公司的笔试/面试,我一天没睡几个小时,一屁股坐在房间,就像钉在那里一样。。。我也哭过,但是哭完后我也是继续努力才有15份offer的,加油兄弟!不许气馁哈
点赞 评论 收藏
分享
珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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