Skip to content

Commit 5190fb0

Browse files
committed
Week 5
1 parent 48fbb83 commit 5190fb0

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Trie:
2+
3+
def __init__(self):
4+
self.trie = {}
5+
6+
def insert(self, word: str) -> None:
7+
level = self.trie
8+
9+
for i in range(len(word)+1):
10+
if i==len(word):
11+
level['end'] = 0
12+
break
13+
if word[i] not in level:
14+
level[word[i]] = {}
15+
level = level[word[i]]
16+
17+
def search(self, word: str) -> bool:
18+
level = self.trie
19+
20+
for char in word:
21+
if i==len(word):
22+
if 'end' in level:
23+
return True
24+
else:
25+
return False
26+
if word[i] not in level:
27+
return False
28+
level = level[word[i]]
29+
30+
def startsWith(self, prefix: str) -> bool:
31+
level = self.trie
32+
33+
for i in range(len(prefix)+1):
34+
if i==len(prefix):
35+
return True
36+
if prefix[i] not in level:
37+
return False
38+
level = level[prefix[i]]
39+

word-break/8804who.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution:
2+
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
3+
dp = [False] * (len(s)+1)
4+
dp[0] = True
5+
6+
for i in range(len(s)):
7+
if not dp[i]:
8+
continue
9+
for word in wordDict:
10+
if i+len(word)>=len(s)+1:
11+
continue
12+
if s[i:i+len(word)] == word:
13+
dp[i+len(word)] = True
14+
15+
return dp[-1]

0 commit comments

Comments
 (0)