From 692ba83dd169b2aad05e1a4d47de492e84cce67e Mon Sep 17 00:00:00 2001 From: Bruno Yang Date: Sun, 30 Jun 2019 23:16:54 +0800 Subject: [PATCH 1/3] Create LeetCode_211_015.py --- Week_04/id_15/LeetCode_211_015.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Week_04/id_15/LeetCode_211_015.py diff --git a/Week_04/id_15/LeetCode_211_015.py b/Week_04/id_15/LeetCode_211_015.py new file mode 100644 index 00000000..3021139a --- /dev/null +++ b/Week_04/id_15/LeetCode_211_015.py @@ -0,0 +1,13 @@ +class WordDictionary(object): + def __init__(self): + self.len2words = collections.defaultdict(list) + + def addWord(self, word): + self.len2words[len(word)].append(word) + + def search(self, word): + words = self.len2words[len(word)] + for i, char in enumerate(word): + words = [w for w in words if char in ('.', w[i])] + if not words: return False + return True From 8fbd5034d5cb1e0cdf83d9bdf3343641fe31b387 Mon Sep 17 00:00:00 2001 From: Bruno Yang Date: Sun, 30 Jun 2019 23:17:34 +0800 Subject: [PATCH 2/3] Create LeetCode_208_015.py --- Week_04/id_15/LeetCode_208_015.py | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Week_04/id_15/LeetCode_208_015.py diff --git a/Week_04/id_15/LeetCode_208_015.py b/Week_04/id_15/LeetCode_208_015.py new file mode 100644 index 00000000..afe36474 --- /dev/null +++ b/Week_04/id_15/LeetCode_208_015.py @@ -0,0 +1,54 @@ +#Data Node to hold char data +class Node: + def __init__(self, val, isWord=False): + self.val = val + self.child = {} + self.isWord = isWord + +class Trie: + + def __init__(self): + """ + Initialize your data structure here. + """ + self.root = Node("") + + + def insert(self, word: str) -> None: + """ + Inserts a word into the trie. + """ + curr = self.root + for ch in word: + if ch not in curr.child: + curr.child[ch] = Node(ch) + curr = curr.child.get(ch) + + curr.isWord = True + + + def search(self, word: str) -> bool: + """ + Returns if the word is in the trie. + """ + curr = self.root + for ch in word: + if ch in curr.child: + curr = curr.child.get(ch) + else: + return False + + return curr.isWord + + def startsWith(self, prefix: str) -> bool: + """ + Returns if there is any word in the trie that starts with the given prefix. + """ + curr = self.root + for ch in prefix: + if ch in curr.child: + curr = curr.child.get(ch) + else: + return False + + return True From 0644de89bd0c3a14a4b0762be7e1c8eb27496722 Mon Sep 17 00:00:00 2001 From: Bruno Yang Date: Sun, 30 Jun 2019 23:19:34 +0800 Subject: [PATCH 3/3] Update NOTE.md --- Week_04/id_15/NOTE.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Week_04/id_15/NOTE.md b/Week_04/id_15/NOTE.md index 107ea7d6..05855010 100644 --- a/Week_04/id_15/NOTE.md +++ b/Week_04/id_15/NOTE.md @@ -1 +1,8 @@ # 学习笔记 + +## 日常计划 + - 完成相对应的算法习题 + - 规划长期算法成长路线 + +## 下周计划 + - 争取通过算法考试