高分求救字符串匹配问题,快来帮忙啊,谢谢!!!!!!!!!!!!!

xiaoyaoxia 2003-11-27 10:09:42
有M个关键字,每个关键字不等长,最长为S,需要在一个长度为N的文本中匹配,匹配出关键
字,我需要设计的是一个算法,是其时间复杂度尽量达到最小,时间复杂度最多为O(N)
答对者必有重谢

也可以给我发mail: houyangyong@163.com
...全文
42 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2003-11-28
  • 打赏
  • 举报
回复
这么高的要求只能用KMP了,不过要扩展到同时使用多个关键字。
xiaoyaoxia 2003-11-28
  • 打赏
  • 举报
回复
关键是时间复杂度的问题,要求匹配的时间只与输入的文本的
长度有关,而与关键字的多少和长度无关。
谁快来帮帮我!!!!我急啊!!!!!!!!!!!!!!!!!!!!!!!!
xiaoyaoxia 2003-11-27
  • 打赏
  • 举报
回复
谢谢,能把《程序设计实践》的例子给我吗,再哪能看到这本书
短歌如风 2003-11-27
  • 打赏
  • 举报
回复
在《程序设计实践》中有一个成熟的例子,简单快速,是用于垃圾邮件过滤的。
方法是“检查某句话中是否含有N个词中的一个”,利用某种方法提高这一检查速度。

方法就是先把关键字按第一个字符分组,并且预计算出每个关键字的长度;
然后对于文本行的每个位置,根据该位置的字符找到关键字组,然后把文本行中这个位置开始的字符串根据关键字长度与分组中的关键字进行比较。

此外这个问题在下面这个贴子中也正在讨论:
http://expert.csdn.net/Expert/TopicView1.asp?id=2470049

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧