KMP 算法的实际应用有哪些?
想问下 KMP 算法的实际应用有哪些?
- 比如说,某某开源框架的某某实现有具体应用到吗?
- 比如说,在你的工作中,有实际使用过 KMP 算法吗?是引用了包,还是自己写了一套实现?是基于什么要考虑使用这个算法,而不是使用别的算法?
Google 了一下相关的,很多都是写怎么实现 KMP 的,搜不动了,特意提个小问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
其实类似
KMP
之类的底层工具算法,很多都已经被封装在了各个语言的标准库,或者一些第三方库中。拿你说的
KMP
相关的字符串搜索算法来说,Python
的字符串有find()
、index()
等方法来搜索字串;Go
语言里标准库strings
也提供了Index()
函数来搜索字串,不过不太巧的是,这俩的底层用的都不是KMP
。其中
Python
使用了boyer-moore
和horspool
,在源码文件的注释中(.../Objects/stringlib/fastsearch.h
)是这么描述的而
Go
语言则使用了Rabin-Karp
算法,直接把核心源码贴出来好了:所以你看,都不用什么开源框架,语言的标准库里就实现了这些算法。
然后你的第二个问题里最后的问题,为什么不用其他算法呢?
Go
和Python
就告诉你:“我们就没用KMP
”。