摘要: 想把算法描述清楚真是件费时费力费脑筋的事情啊,下面算法描述部分源自以下连接:http://www.cnblogs.com/zhangchaoyang/articles/2012070.html最长公共子串(LCS)找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。其实这又是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba"(当然我们现在一眼就可以看出来最长公共子串是"ba"或"ab") b a bc 0 0 0a 阅读全文
posted @ 2014-02-19 17:15 McQueen1987 阅读(224) 评论(0) 推荐(0)
摘要: 想把算法描述清楚真是件费时费力费脑筋的事情啊,下面的算法描述部分源自以下连接:http://www.cnblogs.com/zhangchaoyang/articles/2012070.html感谢哥么写的文字描述的很清晰;我用两种方式实现“最长公共子序列”算法:1.动态规划的顺序实现;2.动态规划的递归实现;3.都用c实现,linux平台编译,代码附在文章末尾; 最长公共子序列最长公共子序列与最长公共子串的区别在于最长公共子序列不要求在原字符串中是连续的,比如ADE和ABCDE的最长公共子序列是ADE。我们用动态规划的方法来思考这个问题如是求解。首先要找... 阅读全文
posted @ 2014-02-19 16:27 McQueen1987 阅读(1905) 评论(0) 推荐(0)