Skip to content

Commit 465ae3b

Browse files
authored
Merge pull request #2178 from 8804who/main
[8804who] WEEK 05 solutions
2 parents 9e5f09e + 7084137 commit 465ae3b

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-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: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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]
16+

0 commit comments

Comments
 (0)