0011算法笔记——【动态规划】最长公共子序列问题(LCS)分析报告.docxVIP

  • 12
  • 0
  • 约1.59万字
  • 约 18页
  • 2017-04-09 发布于湖北
  • 举报

0011算法笔记——【动态规划】最长公共子序列问题(LCS)分析报告.docx

问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=?{ x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…, ik},使得对于所有j=1,2,…,k有 Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X=?{ A, B, C, B, D, A, B}和Y=?{B, D, C, A, B, A},则序列{B,C,A}是X和Y的一个公共子序列,序列{B,C,B,A}也是X和Y的一个公共子序列。而且,后者是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。给定两个序列X=?{x1, x2, …, xm}和Y=?{y1, y2, … , yn},要求找出X和Y的一个最长公共子序列。 ? ? ?问题解析:设X= { A, B, C, B, D, A, B},Y= {B, D, C, A, B, A}。求X,Y的最长公共子序列最容易想到的方法是穷举法。对X的多有子序列,检查它是否也是Y的子序列,从而确定它是否为X和Y的公共子序列。由集合的性质知,元素为m的集合共有2^

文档评论(0)

1亿VIP精品文档

相关文档