Design a data structure that supports the following two operations:
void addWord(word)
bool search(word)
search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter.
For example:
addWord("bad")
addWord("dad")
addWord("mad")
search("pad") -> false
search("bad") -> true
search(".ad") -> true
search("b..") -> true
代碼:
定義字典樹Trie節點
實現的add和search
search方法
解題思路:大致和構建字典樹trie的思路一樣,利用字典樹對單詞進行查找和插入。不同的是在查找word時,遇見了 ' . ?' 要特殊處理,需要跳過當前節點p,遍歷p的兒子節點(next),進行遞歸判斷。
全文引用自:leetcode 解釋的很清楚