| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 286 人关注过本帖
标题:最长同序子串
只看楼主 加入收藏
想变强
Rank: 1
等 级:新手上路
帖 子:12
专家分:9
注 册:2010-10-15
结帖率:100%
收藏
 问题点数:0 回复次数:1 
最长同序子串
有一个问题想了很久,还是没有什么好的想法。希望高手能给点提示。
定义:
1.如果一个字符串s中的字符的相对顺序不允许交换,就称s是一个有序字符串;
2.如果t是字符串s中任意的取某些字符,并且按原来的顺序排列,就说t是s的一个同序子串。
题目描述:
设集合W是由字符串s和t的公共同序子串组成的集合,试给出求解W中长度最大的字符串的长度(看清了)的算法。
本人的想法:
S1:求出s和t的公共字符,并且按照原来的顺序排列,记为r;
S2:取遍r的子串的所有可能的情况,并和s比较,看看那些符合要求,并记录所得的长度。(比较时t的下标只增不减)
S3:最后取出记录长度的最大值。
例如:s="abcd",t="acfdfg"   
S1:r="acd"
S2:分别用"acd""ac""ad""cd""a""c""d"同s比较。可以发现最大长度为3;
数据少一点的话还很有效,但是如果strlen(r)=50,或者更大就几乎不可能了。因为所有可能为2^(strlen(r))-1。相当的恐怖。
望高人指点。
搜索更多相关主题的帖子: 字符串 
2010-10-21 20:30
想变强
Rank: 1
等 级:新手上路
帖 子:12
专家分:9
注 册:2010-10-15
收藏
得分:0 
为什么没人看看呢?版主,我抗议!
2010-10-22 19:24
快速回复:最长同序子串
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014132 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved