Skip to content

Commit 8d49797

Browse files
Solve : Word Break 2
1 parent 1384fbf commit 8d49797

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

word-break/printjin-gmailcom.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
class Solution:
22
def wordBreak(self, s, wordDict):
33
wordSet = set(wordDict)
4-
dp = [False] * (len(s) + 1)
5-
dp[0] = True
4+
memo = {}
65

7-
for i in range(1, len(s) + 1):
8-
for j in range(i):
9-
if dp[j] and s[j:i] in wordSet:
10-
dp[i] = True
11-
break
6+
def backtrack(start):
7+
if start == len(s):
8+
return True
9+
if start in memo:
10+
return memo[start]
11+
12+
for end in range(start + 1, len(s) + 1):
13+
if s[start:end] in wordSet and backtrack(end):
14+
memo[start] = True
15+
return True
16+
17+
memo[start] = False
18+
return False
1219

13-
return dp[len(s)]
20+
return backtrack(0)

0 commit comments

Comments
 (0)