返回信息流输入一个很长的字符串,看看它是否包含一个小字符串集里的任意一个字符串,例如输入fjsdkfjsljfskjfskjfskjfsfjskjfs,判断是否含有{abc, jjj,kdks}中的任何一个。
如果一个小串一个小串的去匹配,那么大串肯定会被遍历很多遍,有没有好一点的方法能减少复杂度?
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #91626同步于 2016/11/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
多个小字符串同时匹配一个主串的问题
nxlhero
2016/11/9镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点?
【 在 NachtZ 的大作中提到: 】
: tire树来匹配?
那你直接把代码封装成一个库,调用这个库复杂度不就是O1了?
既然是算法设计,肯定要自己实现吧,或者说你打算实现一个正则表达式匹配算法?
【 在 nxlhero 的大作中提到: 】
: 直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点?
正则的性能不清楚。看底层的实现吧。如果是分别匹配的那种,性能不会比trie树要好的。如果是三个串和在一起做个自动机应该会比自己写的trie树要好。
【 在 nxlhero 的大作中提到: 】
: 直接用java的正则表达式abc|jjj|jdjdjf性能会不会比自己trie树要好点?