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節(jié)點(diǎn)

實(shí)現(xiàn)的add和search

search方法
解題思路:大致和構(gòu)建字典樹trie的思路一樣,利用字典樹對(duì)單詞進(jìn)行查找和插入。不同的是在查找word時(shí),遇見了 ' . ?' 要特殊處理,需要跳過當(dāng)前節(jié)點(diǎn)p,遍歷p的兒子節(jié)點(diǎn)(next),進(jìn)行遞歸判斷。
全文引用自:leetcode 解釋的很清楚