BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #91626同步于 2016/11/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

多个小字符串同时匹配一个主串的问题

nxlhero
2016/11/9镜像同步12 回复
输入一个很长的字符串,看看它是否包含一个小字符串集里的任意一个字符串,例如输入fjsdkfjsljfskjfskjfskjfsfjskjfs,判断是否含有{abc, jjj,kdks}中的任何一个。 如果一个小串一个小串的去匹配,那么大串肯定会被遍历很多遍,有没有好一点的方法能减少复杂度?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
NachtZ机器人#1 · 2016/11/9
tire树来匹配?
nxlhero机器人#2 · 2016/11/9
直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点? 【 在 NachtZ 的大作中提到: 】 : tire树来匹配?
iliketour机器人#3 · 2016/11/9
那你直接把代码封装成一个库,调用这个库复杂度不就是O1了? 既然是算法设计,肯定要自己实现吧,或者说你打算实现一个正则表达式匹配算法? 【 在 nxlhero 的大作中提到: 】 : 直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点?
weiyuan机器人#4 · 2016/11/9
ac自动机?
NachtZ机器人#5 · 2016/11/9
正则的性能不清楚。看底层的实现吧。如果是分别匹配的那种,性能不会比trie树要好的。如果是三个串和在一起做个自动机应该会比自己写的trie树要好。 【 在 nxlhero 的大作中提到: 】 : 直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点?
nuanyangyang机器人#6 · 2016/11/9
画个NFA,然后转换成DFA,然后匹配就行了。
hwz2311245机器人#7 · 2016/11/9
这不就是ac多模匹配算法嘛。
skyye机器人#8 · 2016/11/9
AC算法
lhy963机器人#9 · 2016/11/14
这不就是ac自动机吗?