全文搜尋的一些理論總結2

2021-09-01 08:14:09 字數 669 閱讀 7465

1.通過正則實現

>>> p = re.compile("abc|****")

>>> p.findall("abc****selpabcdslfabceflabc")

['abc', '****', 'abc', 'abc', 'abc']

2. 通過trie樹實現

trie樹,又稱字典樹,單詞查詢樹或者字首樹,是一種用於快速檢索的多叉樹結構。

trie一詞來自retrieve,發音為/tri:/ 「tree」,也有人讀為/traɪ/ 「try」。

trie樹可以利用字串的公共字首來節約儲存空間。如下圖所示,該trie樹用10個節點儲存了6個字串tea,ten,to,in,inn,int:

在該trie樹中,字串in,inn和int的公共字首是「in」,因此可以只儲存乙份「in」以節省空間。當然,如果系統中存在大量字串且這些字串基本沒有公共字首,則相應的trie樹將非常消耗記憶體,這也是trie樹的乙個缺點。

trie樹的基本性質可以歸納為:

(1)根節點不包含字元,除根節點意外每個節點只包含乙個字元。

(2)從根節點到某乙個節點,路徑上經過的字元連線起來,為該節點對應的字串。

(3)每個節點的所有子節點包含的字串不相同。

參考:

一些搜尋總結

我們在bfs時,要從起點,搜遍整顆搜尋樹,然後找到終點,整個過程大概是乙個如下的結構 我比較懶,所以圖非常簡陋。最上面的節點表示起點,最下面的點表示終點。我們正常的bfs是從起點一路向下搜到終點,這樣要擴充套件不少的狀態,耗費不少的時間。這樣我們想我們其實可以從起點和終點同時開始搜,起點和終點同時向...

開發的一些總結(2)

1.static的意義 如果任何乙個x前加了static修飾,那麼這個x允許其他原始檔建立同名函式且不衝突。不能被其他原始檔訪問 修改,可以直接用class訪問,不用例項化。同時static類的東西也不能操作非static型別的東西。在標頭檔案如果說明了乙個static型別變數,就要在,cpp檔案的...

軟體測試一些理論

軟體測試定義 軟體測試物件 軟體測試分類 首先說呀,是因為想要投軟體測試的實習,所以我就學習了一些軟體測試的一部分理論,學藝不精呢。僅當日記。使用人工或自動的手段來執行或者測量軟體系統的過程,目的是檢驗軟體系統是否滿足規定的需求,並找出與預期結果的差異。它是為了發現錯誤而執行程式的過程,測試 為了尋...