Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24757
  • 博文数量: 11
  • 博客积分: 520
  • 博客等级: 中士
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-16 21:26
文章分类
文章存档

2010年(1)

2007年(10)

我的朋友

分类:

2007-04-16 21:41:35

最长公共子序列问题:给定两个序列 X = {x1, x2, ......, xm } 和 Y = {y1, y2, ......, yn },找出 XY 的最长公共子序列。
 
一个给定序列的子序列是在该序列中删去若干个元素后得到的序列。给定两个序列 XY ,当另一序列 Z 既是 X 的子序列又是 Y 的子序列时,称 Z 是序列 XY 的公共子序列。例如,若 X = {ABCBDAB },Y = {BDCABA },序列{BCA }是 XY 的一个公共子序列,序列{BCBA }也是 XY 的一个公共子序列,且为最长公共子序列。
 
最长公共子序列问题具有最优子结构性质。
设序列 X = {x1, x2, ......, xm } 和 Y = {y1, y2, ......, yn }的最长公共子序列为 Z = {z1, z2, ......, zk},则
(1) 若 xm = yn ,则 zk = xm = yn ,且 Zk-1 是 Xm-1 和 Yn-1 的最长公共子序列。
(2) 若 xm != yn 且 zk != xm ,则 ZXm-1 和 Y 的最长公共子序列。
(3) 若 xm != yn 且 zk != yn ,则 ZXYn-1 的最长公共子序列。
其中, Xm-1 = {x1,
阅读(443) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:linux grep命令的使用

给主人留下些什么吧!~~