我有一個數組有這麼多的字符串,並希望搜索它的模式。 這種模式可以有一些「。」通配符誰匹配(每個)1個字符(任何)。用搜索字符串。通配符
例如:
myset = {"bar", "foo", "cya", "test"}
find(myset, "f.o") -> returns true (matches with "foo")
find(myset, "foo.") -> returns false
find(myset, ".e.t") -> returns true (matches with "test")
find(myset, "cya") -> returns true (matches with "cya")
我試圖找到一種方法來快速實現這個算法,因爲myset
實際上是一個非常大的陣列,但沒有我的想法具有令人滿意的複雜性(例如O(size_of(myset) * lenght(pattern))
)
編輯:
myset
是一個巨大的數組,在它的話並不大。 我可以做一個緩慢的預處理。但我會有這麼多find()
查詢,所以find()
我想find()
儘可能快。
每個模式一個或多個通配符? – 2011-02-02 00:38:08
該集合是否修復?您可以從中創建一個模板並將模式與模板匹配。 – 2011-02-02 00:48:59
什麼語言?你可以使用現有的正則表達式庫嗎? – 2011-02-02 00:53:53