问题标签 [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 投票
0 回答
119 浏览

algorithm - Boyer-Moore 算法:到达文本的末尾

我正在研究这个算法,但模式和文本不匹配。

文字为:AADBCCAAA 图案为:CCAAA

我已经创建了坏符号表和好后缀表。

坏符号:

!AC(! 表示不在模式中的字母)
5 1 3

好后缀:
k d2
1 2
2 6
3 6
4 6
5 6

至于我的搜索:
AADBCCAAA
CCAAA 既然没有匹配,shift 3 因为C导致不匹配

这会将模式中最右边的 A 与文本中倒数第二个 A 对齐。这表示

d1 = 3-2 = 1 和 d2 = 6。两者的最大值为 6,因此移位 6。

对于 Boyer-Moore,这是否意味着由于您不能移动 6,它只会将模式与文本末尾进行比较并找到匹配项,还是我做错了什么?

0 投票
2 回答
3511 浏览

algorithm - Boyer-Moore 字符串匹配 - 良好的后缀移位

我理解坏符号表。在好的后缀表中,距离不应该计算为从最右边的模式出现到模式文本末尾的距离吗?在这种情况下,下表不应该将所有距离 (d2) 都设为 1(最后一个条目为 5 除外),因为在它的最左侧可以使用相同的模式?

在此处输入图像描述

在类似的条件下,也从未理解下表。有什么帮助吗?

在此处输入图像描述

参考:

问题 - 第 6 页,问题 7。


答案 - 第 11 页


计算机算法的设计与分析- Anany Levitin ( https://umutzafer.files.wordpress.com/2012/01/solu7.pdf )

文本 -计算机算法的设计和分析 - Anany Levitin(第 263 页)

0 投票
1 回答
146 浏览

javascript - Javascript - 字符串匹配错误的输出

我已经使用 node.js 编写了 Boyer-Moore horspool 字符串匹配算法。该程序工作,但总是输出 -1,如果模式字符串不在指定文本中,它应该输出。

我终其一生都无法弄清楚什么是行不通的,我会非常感谢提示我需要解决的问题。

我的代码

任何帮助将不胜感激。谢谢你!

0 投票
0 回答
362 浏览

java - Boyer-Moore delta2 table

I've been working on implementing the Boyer-Moore algorithm in Java and I've hit a problem. The document (http://www.cs.utexas.edu/~moore/publications/fstrpos.pdf) shows two examples for delta2(j) tables. The program I have made correctly calculates all the delta values, except delta(2) (the first B). My program claims that delta(2) is 2 (and that rpr(2) is 8). I have done the work on paper and it appears that this calculation is correct, but it disagrees with the document.

I am fairly certain that the document doesn't have a mistake so does anyone know if I have done something wrong.

0 投票
2 回答
398 浏览

java - Boyer-Moore 多数投票算法的内存复杂度?

根据我的理解,要找到多数元素 Boyer-Moore 多数投票算法是 O(1),即它是恒定的,并且与输入的大小不成比例。那么为什么 thi wiki 链接提到对数空间 {\displaystyle O(\log n)} O(\log n)

这是供参考的程序

0 投票
0 回答
163 浏览

algorithm - 对于某些情况,博耶摩尔最大投票算法会失败吗?

考虑以下带有元素的数组:

该算法不返回 5 作为多数元素,但在第一遍结束时将 2 视为计数为 0 的多数元素。

这是伪代码:

在此迭代结束时,num1 将包含元素“2”并且计数将为 0。我应该如何使算法工作以返回元素“5”?

0 投票
0 回答
107 浏览

c++ - Horspool 算法执行错误

我有两个文件(一个是bash脚本文件,另一个是cpp文件) bash文件(horsepool.bash)如下

cpp文件如下(horsepool_traditional.cpp)

执行 bash 文件(horsepool.bash)后,出现以下错误: 错误图像

我该如何解决这些错误?提前致谢。

0 投票
0 回答
556 浏览

c++ - Boyer - Moore 字符串搜索到 Sunday 字符串搜索(快速字符串搜索)c++

我想把我的 Boyer - Moore 算法变成星期天(快速搜索)。目前我有一个工作版本的 Boyer - Moore 字符串搜索算法:

我一直在查看以下 2 个解释星期日(快速搜索)算法的链接,但我不确定如何将 BM 更改为星期日:

http://www.iti.fh-flensburg.de/lang/algorithmen/pattern/sundayen.htm

http://www-igm.univ-mlv.fr/~lecroq/string/node19.html

我会很感激任何提示。

0 投票
1 回答
39 浏览

php - 调用时传递引用

此代码中存在致命错误:

第 108 行删除了调用时传递引用。这是 Boyer Moore 算法

函数坏字符

功能好后缀

函数boyer_moore

是什么导致了这个错误?

0 投票
1 回答
311 浏览

string - Boyer 更精确的子串是否匹配动态编程的范式?

我会说是的,因为使用了正确的表格来确定您必须跳过多少字符。对此有什么想法吗?