問題:給定一個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