实用算法实现-第 8 篇 后缀树和后缀数组 [3 两个字符串的最长公共子串]
2011-10-16 12:56 myjava2 阅读(354) 评论(0) 编辑 收藏 举报8.4 两个字符串的最长公共子串
两个串的最长公共字串是相对于多个串要简单一点,不需要二分A。只需要判断相邻两个Height是不是分属两个字符串即可。
8.4.1 实例
PKU JudgeOnline, 2774, Long Long Message.
8.4.2 问题描述
给两个小写ASCII字母组成的字符串,求出它们最大公共子串的长度。
相比PKUJudgeOnline, 3450, Corporate Identity,这个题目比较简单,而且测试数据并不强,没有测出求Height数组的一个错误。
8.4.3 输入
yeshowmuchiloveyoumydearmotherreallyicannotbelieveit
yeaphowmuchiloveyoumydearmother
8.4.4 输出
27
8.4.5 分析
采用的算法是DC3算法,源程序可以在[i]下载。该算法实现得相当巧妙,所以只添加注释和计算height的函数,就可以使用了。
8.4.6 程序
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article
[i] http://www.mpi-sb.mpg.de/~sanders/programs/suffix/