标签:应用 技术分享 因此 color 示例 字符 alt 分享图片 cab
一个序列的子序列是在该序列中删去若干元素后得到的序列。例如:“ABCD”和“BDF”都是“ABCDEFG”的子序列。
最长公共子序列(Longest Common Subsequence,简写LCS)问题:给定两个序列X和Y,求X和Y长度最大的公共子序列。例如:X=“ABBCBDE”, Y="DBBCDB", LCS(X,Y)="BBCD"
应用场景:字符串相似度比对、基因比对。
令X=<x1,x2,...,xm>和Y=<y1,y2,...,yn>为两个序列,Z=<z1,z2,...,zk>为X和Y的任意LCS。
1.如果xm=yn,则zk=xm=yn且Zk-1是Xm-1和Yn-1的一个LCS。
2.如果xm≠yn,那么zk≠xm意味着Z是Xm-1和Y的一个LCS。
3.如果xm≠yn,那么zk≠yn意味着Z是X和Yn-1的一个LCS。
c[i,j]表示Xi和Yj的LCS长度。
例如:要求a="ABCBDAB"与b="BDCABA"的LCS:
由于最后一位"B"=?"A",因此LCS(a,b)应该来源于LCS(a[:-1],b)与LCS(a,b[:-1])中的一个。意思就是最后一位不一样,要不去除a的最后一位,要不去除b的最后一位。
标签:应用 技术分享 因此 color 示例 字符 alt 分享图片 cab
原文地址:https://www.cnblogs.com/xiugeng/p/9761535.html