问题标签 [boyer-moore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4874 浏览

algorithm - Boyer 和 Moore 算法,移位表计算

我整个晚上都没能计算出一个简单的移位表,用于搜索用于Boyer 和 Moore 模式匹配算法的搜索词“anabanana” 。

我发现以下示例没有任何解释: 在此处输入图像描述

任何人都可以帮助我理解和解释图像查找班次表的方法吗?

0 投票
2 回答
8191 浏览

algorithm - 原始 Boyer-Moore 算法和 Boyer-Moore-Horspool 算法之间的区别

我无法理解 Horspool 在他的算法中所做的更改。如果您有任何 Boyer-Moore-Horspool 算法的链接,请告诉我。

0 投票
1 回答
263 浏览

algorithm - Boyer-Moore 算法中的移位规则

关于这个算法中的两个移位规则(坏字符和好后缀),我有些想不通。他们是否一起工作,以及究竟是什么决定了在每种情况下部署哪个或轮班。这个全面的解释以一个SSIMPLE EXAMPLE让我感到困惑的例子结束,我的问题在这里,如果算法向后移动,为什么算法需要良好的后缀移位才能向右移动?我确定我在这里想念一些东西。你能帮我解释一下前面提到的例子吗?

0 投票
1 回答
708 浏览

string - boyer-moore字符串匹配算法中后缀表的O(n)算法

我想实现 boyer-moore 算法,但我坚持构建一个我认为应该具有 O(n) 复杂度的好的后缀表,我只找到了 O(n^2) 算法。所以你们有我的线索吗?

请不要给我代码片段,如果我愿意,我可以谷歌它,但我更喜欢以我的方式解决它,我只需要一个线索。

0 投票
1 回答
5979 浏览

c - Boyer-Moore 好后缀启发式算法

我了解不良性格启发式是如何工作的。当您发现不匹配的字母x时,只需移动模式,使模式中的最右边与字符串中的x对齐。x并且很容易在代码中实现。

我想我也理解好后缀启发式是如何工作的。当我们找到一个好的后缀s时,在模式中的不同位置找到相同的后缀并将其移动,以便模式中的 与字符串中的s对齐。s但我不明白如何在代码中做到这一点。我们如何找到相同的后缀是否存在于模式中的另一个位置?我们怎么知道它的位置?编码:

来自http://www.iti.fh-flensburg.de/lang/algorithmen/pattern/bmen.htm对我来说没有意义......有人可以为这项任务编写尽可能简单的伪代码吗?或者以某种方式解释?

0 投票
2 回答
2098 浏览

java - StringUtils.contains 的 Apache 和 Boyer–Moore 字符串搜索算法

要在 S 中搜索 s(size(S) >= size(s) 并返回 true/false 值),最好使用 Apache 的 StringUtils.contains() 或使用 Boyer-Moore 算法实现并测试良好我找到的人?

谢谢

0 投票
1 回答
340 浏览

c# - 了解博耶摩尔

我正在尝试在大量文本中实现精确的文本搜索。为此,我找到了一些用于 c# 的 Boyer Moore 实现示例,但现在我无法理解它是如何工作的。

例如,如果我有字符串,这是要搜索的示例文本,并且想要 fin来搜索 它是有效的,但是如果我将搜索模式更改为搜索和文本,它仍然返回值而不是 -1。为什么会这样?在我的搜索文本中没有要搜索的模式和文本的字符串。

下面是我通过 Stackoverflow 找到的一个实现

这是它的示例用法。

0 投票
0 回答
1494 浏览

c - Boyer-Moore 算法

我正在尝试在 C 中实现 Boyer-Moore 算法以在 .pcap 文件中搜索特定单词。我从http://ideone.com/FhJok5引用了代码。我正在使用此代码。

只是我将数据包作为字符串传递,并将我正在搜索的关键字传递给其中的函数 search()。当我运行我的代码时,它每次都会给出不同的值。有时它也给出了正确的值。但大多数时候它没有识别一些值。

我从 Naive Algo Implementation 获得了结果。结果总是完美的。

我在 VMware 10.0.1 上使用 Ubuntu 12.0.4。语言:C

我的问题是每次都必须给出相同的结果,对吗?不管是对是错。每次我在相同的输入上运行文件时,此输出都会不断变化;并且在几次运行期间,它也给出了正确的答案。大多数情况下,该值在 3 或 4 个值之间变化。

到目前为止我所做的调试:

  1. 每次都传递字符串而不是数据包,它的工作完美且每次都具有相同和正确的值。
  2. 检查 pcap 部分,我可以看到所有数据包都被传递给函数(我通过打印数据包帧号来检查)。
  3. 我发送给 Naive Algo 代码的相同数据包,它提供了完美的代码。

请给我一些想法,可能是什么问题。我怀疑内存管理有问题。但如何找到哪一个?

提前致谢。

0 投票
1 回答
769 浏览

c - Boyer-Moore-Horspool 实施

我想获得 Boyer-Moore-Horspool 实现来搜索文本文件中的某些字符串。这是我的代码:

我相信,我做错了很多事情,但我真的找不到并修复它。我唯一得到的是程序在某个阶段不符合条件while(hlen >= nlen)

0 投票
1 回答
222 浏览

c++ - 使用 boost::boyer_moore 和 boost::gil

我想从大图像中搜索小图像,我的算法是:

  1. 搜索第一行
  2. 如果第一行匹配,则比较其余的

我想使用 boost::algorithm::boyer_moore 进行行搜索,它适用于 std::string:

代码编译,但这个不是:

他们都是迭代器,第二个有什么问题?

谢谢。