我正在寻找一个最小距离指标,它可以保留子序列。有了这个,我的意思是第二个序列的任何子序列都可以有不同的表示,但仍然与第一个子序列相同。两个序列的长度始终相同。我熟悉汉明或Levenshtein距离,但在这种情况下它们可能没用。
考虑这个例子:
AABBAA
CCDDCC
距离为0,因为A = C
和B = D
(或AA = CC
和BB = DD
)。
AABBBBBB
CCDDEEEE
距离为2,因为A = C
和B = E
(或AA = CC
或BB = EE
或BBBB = EEEE
),但B =/= D
(或{ {1}})。
但是,此功能的行为可能与此不完全相同。 我只需要知道未编码的序列在重复方面与编码的序列是如何相似的。你可以假设第二个序列是用caesar密码编码的(虽然我不确定是否是转变可能会随着时间而变化。
注意:的
我还想过用LZW算法压缩两个序列并比较它们的压缩比。还有其他想法吗?
答案 0 :(得分:0)
您可以从头开始使用连续数字枚举序列中的元素,然后使用Levenshtein距离或类似的东西。
AACCAABB --> 11221133 (A->1, C->2, B->3)
CCXXCCYY --> 11221133 (C->1, X->2, Y->3)
d(AACCAABB, CCXXCCYY) = d(11221133, 11221133) = 0