wordBreak = function(s, wordDict) {
    const wordSet = new Set(wordDict);           /* Time O(N)         | Space O(N) */
    const queue = new Queue([ 0 ]);              /*                   | Space O(N) */
    const seen = new Array(s.length).fill(false);/*                   | Space O(N) */

    return bfs(queue, s, wordSet, seen);         /* Time O(N * N * N) | Space O(N + WIDTH) */
}
Tree Traversal - BFS
Queue - Level Order Space O(WIDTH)
Hash Set - Distinct Keys
Array - Seen
Time O(N^3) | Space O(N)
https://leetcode.com/problems/word-break/
@param {string} s
@param {string[]} wordDict
@return {boolean}