繁体   English   中英

字符串匹配算法设计

[英]String matching algorithm design

给定文本t [1 ... n]和k个模式p1,p2,... pk,每个模式的长度为m,n = 2m,来自字母[0,Sigma-1]。 设计一种有效的算法,以找到t中任何与模式pj匹配的位置i。

所以我有一个字符串t =“ 1 2 3 4 5 2 2 9”和模式p =“ 4 5 2 2”。 我知道会有m + 1个位置可以找到一个模式(从“ 1 2 3 4”,“ 2 3 4 5”等开始)。

然后我们在模式中有k个字符,因此bigO得出O(k(m + 1))。

我的算法是在字符串中搜索,以检查每个字符与模式中的字符。 这将对m + 1个位置运行k次迭代。

希望我能正确解释。 我只想知道我是否做对了,我的逻辑是否有缺陷。 谢谢!

我的算法是在字符串中搜索,以检查每个字符与模式中的字符。 这将对m + 1个位置运行k次迭代。

这意味着对于每个模式,您都可以做到O(m + 1),对吗?

尽管有一些算法可以实现这种性能,但蛮力的却不能。 您有m + 1个位置,并且对于每个位置都需要检查m个字符,因此每个模式的总复杂度为O(m(m + 1))。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM