动态规划问题一般有两个特征:最优子结构 以及 重叠子问题。
在求解最长公共子序列的时候,所谓的“最优”即是“最长”,重叠子问题是指这个问题可以划分为很多个子问题,其中有些子问题的解是相同的。
具体的原理这里不再赘述,下面给出python实现的代码。
def lcs(A, B):
# B作为行,A作为列
c = [([0] * (len(B)+1)) for i in range(len(A)&
动态规划问题一般有两个特征:最优子结构 以及 重叠子问题。
在求解最长公共子序列的时候,所谓的“最优”即是“最长”,重叠子问题是指这个问题可以划分为很多个子问题,其中有些子问题的解是相同的。
具体的原理这里不再赘述,下面给出python实现的代码。
def lcs(A, B):
# B作为行,A作为列
c = [([0] * (len(B)+1)) for i in range(len(A)&