Implement a trie with insert
, search
, and startsWith
methods.
Example:
Note:
- You may assume that all inputs are consist of lowercase letters
a-z
.- All inputs are guaranteed to be non-empty strings.
Related Topics: Trie
相見恨晚的一題阿,我面試時就是考這題的概念,可惜太久沒寫 Tree ,也沒用 Python 寫過 Tree,面試實作時超級卡的 Orz
需要注意的是,在實作與樹不一樣的是,節點本身不需要儲存字元,而是使用節點的連線來代表字母,換句話說在父節點儲存子節點時,使用 mapping (其 Key 值為字元,Value 為子節點)方式來儲存,會比較方便操作。另外節點本需要額外變數記錄樹否為某一單字結尾。
基本上search
與 startsWith
是在做同樣的事情,只是 search
在回傳時需多判斷該結果是否成詞。
實做步驟:
本文作者: 辛西亞.Cynthia
本文連結: 辛西亞的技能樹 / hackmd 版本
版權聲明: 部落格中所有文章,均採用 姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!