Skip to content

Commit b8d817a

Browse files
committed
word break solution
1 parent 04a8b21 commit b8d817a

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

word-break/yuseok89.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#TC: O()
2+
#SC: O()
3+
class Solution:
4+
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
5+
6+
word_set = set()
7+
8+
max_len = 0
9+
min_len = 300
10+
11+
for word in wordDict:
12+
word_set.add(word)
13+
max_len = max(max_len, len(word))
14+
min_len = min(min_len, len(word))
15+
16+
v = set()
17+
18+
def rec(cur):
19+
if cur in v:
20+
return False
21+
22+
v.add(cur)
23+
24+
if len(cur) == 0:
25+
return True
26+
27+
for l in range(min_len, max_len + 1):
28+
if len(cur) < l:
29+
return False
30+
31+
if cur[0:l] in word_set:
32+
if rec(cur[l:]):
33+
return True
34+
35+
return False
36+
37+
return rec(s)
38+

0 commit comments

Comments
 (0)