1.问题分析
我们经常听说过DNA亲子鉴定。那么到底是怎么回事呢?人类的DNA由四个基本字母(A,C,G,T)租场,包含了多达三十亿个字符。如果两个人的DNA序列相差0.1%,任然意味着有300万个温志不同,所以我们经常看到DNA亲子鉴定报告上有:相似度99.999%,不排除亲子关系。
怎么判断两个基因的相似度呢?生物学上给出了一种编辑距离的概念。
例如两个字符串FAMILY和FRAME,有两种对齐方式:
F - A M I L Y
F R A M E
- F A M I L Y
F R A M E
第一种对齐需要付出的代价:4,插入R,将I替换成E,删除L,Y。
第二种对齐需要付出的代价:5,插入F,将F替换成R,将I替换成E,删除L,Y。
编辑距离是指将一个字符串变成另一个字符串所需要的最小编辑操作。
给定两个序列X={x1,x2,x3,……,xm}和Y={y1,y1,y2,……,yn},找出X和Y的编辑距离。
例如:X={A,B,C,D,A,B},Y={B,D,C,A,B}。如果用穷举法,会有很多种对齐方式,暴力穷举的方式是不可取的。那么怎么找到编辑距离呢?
首先考虑能不能