Simple Python solution
Please see and vote for my solutions for\n208. Implement Trie (Prefix Tree)\n1233. Remove Sub-Folders from the Filesystem\n1032. Stream of Characters\n211. Add 
Please see and vote for my solutions for\n[208. Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/discuss/320224/Simple-Python-solution)\n[1233. Remove Sub-Folders from the Filesystem](https://leetcode.com/problems/remove-sub-folders-from-the-filesystem/discuss/409075/standard-python-prefix-tree-solution)\n[1032. Stream of Characters](https://leetcode.com/problems/stream-of-characters/discuss/320837/Standard-Python-Trie-Solution)\n[211. Add and Search Word - Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/discuss/319361/Simple-Python-solution)\n[676. Implement Magic Dictionary](https://leetcode.com/problems/implement-magic-dictionary/discuss/320197/Simple-Python-solution)\n[677. Map Sum Pairs](https://leetcode.com/problems/map-sum-pairs/discuss/320237/Simple-Python-solution)\n[745. Prefix and Suffix Search](https://leetcode.com/problems/prefix-and-suffix-search/discuss/320712/Different-Python-solutions-with-thinking-process)\n[425. Word Squares](https://leetcode.com/problems/word-squares/discuss/320916/Easily-implemented-Python-solution%3A-Backtrack-%2B-Trie)\n[472. Concatenated Words](https://leetcode.com/problems/concatenated-words/discuss/322444/Python-solutions%3A-top-down-DP-Trie)\n[212. Word Search II](https://leetcode.com/problems/word-search-ii/discuss/319071/Standard-Python-solution-with-Trie-%2B-Backtrack)\n[336. Palindrome Pairs](https://leetcode.com/problems/palindrome-pairs/discuss/316960/Different-Python-solutions%3A-brute-force-dictionary-Trie)\n\n```\nclass TrieNode:\n    def __init__(self):\n        self.children = {}\n        self.isEnd = False\n\nclass WordDictionary:\n    def __init__(self):\n        """\n        Initialize your data structure here.\n        """\n        self.root = TrieNode()\n\n    def addWord(self, word: str) -> None:\n        """\n        Adds a word into the data structure.\n        """\n        node = self.root\n        for char in word:\n            if char not in node.children:\n                node.children[char] = TrieNode()\n            node = node.children[char]\n        node.isEnd = True\n\n    def search(self, word: str) -> bool:\n        """\n        Returns if the word is in the data structure. A word could contain the dot character \'.\' to represent any one letter.\n        """\n        def dfs(node, i, word):\n            if i == len(word):\n                return node.isEnd\n            if word[i] == \'.\':\n                for c in node.children:\n                    if dfs(node.children[c], i + 1, word):\n                        return True\n                return False\n            else:\n                if word[i] not in node.children:\n                    return False\n                else:\n                    return dfs(node.children[word[i]], i + 1, word)\n        \n        return dfs(self.root, 0, word)\n```\n
[]