(s, wordSet, start)
| 21 | }; |
| 22 | |
| 23 | var dfs = (s, wordSet, start) => { |
| 24 | for (let end = start + 1; end <= s.length; end++) { |
| 25 | /* Time O(N) */ |
| 26 | const word = s.slice(start, end); /* Time O(N) | Space O(N) */ |
| 27 | |
| 28 | const _canBreak = |
| 29 | wordSet.has(word) && |
| 30 | canBreak(s, wordSet, end); /* Time O(2^N) | Space O(N) */ |
| 31 | if (_canBreak) return true; |
| 32 | } |
| 33 | |
| 34 | return false; |
| 35 | }; |
| 36 | |
| 37 | /** |
| 38 | * DP - Top Down |