Menu
CoddyTech

最长公共子序列

Coddy 动态规划入门 课程的第 6 课,共 15 课。

最长公共子序列(LCS)是一个经典的计算机科学问题,目标是找出两个序列共有的最长子序列。子序列是通过删除另一个序列中的部分或全部元素得到的序列,同时不改变剩余元素的顺序。

例如,来看两个序列:

S1 = "AGGTAB"

S2 = "GXTXAYB"

S1 和 S2 的最长公共子序列是 "GTAB",长度为 4。

解决最长公共子序列问题有几种方法,其中最常用的是动态规划方法。

challenge icon

挑战

中等

编写一个函数,接收两个字符串作为输入,并返回它们的最长公共子序列的长度。

注意:这道题以及本课程接下来介绍的算法都属于高级算法。对于新手程序员来说,可能很难独立想出高效的动态规划解法。别犹豫,使用提示或“Ask AI”按钮吧!

亲手试试

def longest_common_subsequence(str1, str2):
    # 在这里编写代码

动态规划入门中的所有课

自己练习: Python 在线编译器