关闭

最长公共子序列(LCS)问题

272人阅读 评论(0) 收藏 举报

         最长公共子序列也称作最长公共子串,英文缩写是LCS(Longest Common Subsequence)。其定义是:一个序列S,如果分别是两个或多个已知序列的子序列,且是符合此条件的子序列中最长的,则称S为已知序列的最长公共子序列。

        关于子序列的定义通常有两种方式,一种是对子序列没有连续的要求,其子序列的定义就是原序列中删除若干元素后得到的序列。另一种是对子序列有连续的要求,其子序列的定义是原序列中连续出现的若干个元素组成的序列。求解子序列是非连续的最长公共子序列问题是一个十分实用的问题,它可以描述两段文字之间的“相似度”,即它们的雷同程度,从而能够用来辨别抄袭。


有两篇博客对这个问题的算法做了很好的分析

一、这篇博客讲得浅显易懂

非连续:http://blog.csdn.net/orbit/article/details/6717125

连续:http://blog.csdn.net/orbit/article/details/6850706

二、这篇博客讲得很专业

http://www.cppblog.com/superKiki/archive/2010/05/08/114836.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:190115次
    • 积分:2443
    • 等级:
    • 排名:第15662名
    • 原创:70篇
    • 转载:35篇
    • 译文:0篇
    • 评论:8条
    最新评论