wordBreak = (s, wordDict) => {
    const wordSet = new Set(wordDict);           /* Time O(N)         | Space O(N) */
    const memo = new Array(s.length).fill(null); /*                   | Space O(N) */
    const start = 0;

    return canBreak(s, wordSet, start, memo);    /* Time O(N * N * N) | Space O(N) */
}
DP - Top Down
Array - Memoization
Hash Set - Distinct Keys
Time O(N^3) | Space O(N)
https://leetcode.com/problems/word-break/
@param {string} s
@param {string[]} wordDict
@return {boolean}