一、最长公共子序列模型
(1) 存在两个字符串序列:X={x1,x2,...,xm}, Z={z1,z2,...zk}
(2)存在一个严格递增下标序列{i1,i2,..,ik}使得对于所有j=1,2,...,k有:zk=xij
(3)X和Y的最长公共子序列
1) 序列X,Y
2) 序列Z既是X的子序列又是Y的子序列,称Z是序列X和Y的最长公共子序列
(4)目标问题描述
给定两个序列X={x1,x2,...,xm}和Y={y1,y2,...,yn},找出最长公共子序列
二、求解方法
1.蛮力搜索法(不推荐使用该方法)
(1)列举A所有的个子序列,对于每一个子序列在O(m)时间内来确定它是否也是B的子序列
(2)时间复杂性是O(m)
2、反向分析法
问题:Z={z1,z2,...,zk}是序列X={x1,x2,...,xm}和Y={y1,y2,...,yn}的最长公共子序列
应用该方法求最长公共子序列应该具有如下三个性质:(最优子结构的性质)