最长公共子序列
Coddy 动态规划入门 课程的第 6 课,共 15 课。
最长公共子序列(LCS)是一个经典的计算机科学问题,目标是找出两个序列共有的最长子序列。子序列是通过删除另一个序列中的部分或全部元素得到的序列,同时不改变剩余元素的顺序。
例如,来看两个序列:
S1 = "AGGTAB"
S2 = "GXTXAYB"
S1 和 S2 的最长公共子序列是 "GTAB",长度为 4。
解决最长公共子序列问题有几种方法,其中最常用的是动态规划方法。
挑战
中等编写一个函数,接收两个字符串作为输入,并返回它们的最长公共子序列的长度。
注意:这道题以及本课程接下来介绍的算法都属于高级算法。对于新手程序员来说,可能很难独立想出高效的动态规划解法。别犹豫,使用提示或“Ask AI”按钮吧!
亲手试试
def longest_common_subsequence(str1, str2):
# 在这里编写代码动态规划入门中的所有课
自己练习: Python 在线编译器