首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boyer-Moore字符串搜索算法开始对齐

Boyer-Moore字符串搜索算法开始对齐
EN

Stack Overflow用户
提问于 2018-06-20 18:36:44
回答 1查看 68关注 0票数 1

我不是一个专业的程序员,所以请容忍我。我四处看看为什么大海捞针和针头的初始“对齐”不应该是在大海捞针的最后一个字符的第一次和大海捞针中的相同字符的第一次一致,而是最早在needle.length()-1,而不是在'haystack.needle.length()-1‘和'needle.length()-1’中进行比较?

例子:-

干草堆

针头:下垂

上面,在大海捞针之前的一切都可以被完全忽略,从之前的变化和比较来看。

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 19:02:28

如果你想在干草堆中找到第一个t (从第七个字符开始),你必须查看干草堆中的每个字符,直到最后。

博耶·摩尔( Boyer )发现这一职位的比较要少得多。例如,在比较了te之后,它可以向前移动五个字符。下一个比较是t和第二个a,这将导致两个位移。因此,经过两次比较,而不是七次比较,就可以找到正确的对齐方式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50954974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档