问题:给定一个globs的列表,我需要从列表中找到(并返回)一个给定字符串匹配或确定无匹配的glob。排除安装时间,性能必须优于线性搜索所有水珠的:比O(n)glob匹配器好吗?
foreach glob in list:
if glob.matches(string):
return glob
return None
问题:是否有任何可用的库(C++首选)这个?
编辑:多一点思考后,我在想我可以说,这是可以做到。考虑到globs或多或少具有不同语法的正则表达式,使用glob语法的lex的运行时版本将适合账单。
鉴于问题可以简单地归结为一个已知问题,我只对实施的解决方案感兴趣。
它甚至有可能?鉴于26个水珠('* A *','* B *','* C *'...'* Z *')是有可能不检查所有26个水珠(因此为O(n)) – xanatos 2011-03-25 15:04:40
萨那托斯:考虑到这一点,你应该期望在一场比赛之前只需要检查少量球。或者你可以将它压缩到正则表达式'。* [A-Z]。*'并运行它。 – BCS 2011-03-25 15:08:27