// Word Break — HARD
// Category: dynamic-programming
Given a string `s` and a dictionary of strings `wordDict`, return `true` if `s` can be segmented into a space-separated sequence of one or more dictionary words.
Note that the same word in the dictionary may be reused multiple times in the segmentation.
Hint: Bottom-up DP — `dp[i]` is `true` if the substring `s[0..i]` can be segmented. For each `i`, check all `j < i` where `dp[j]` is true and `s[j..i]` is in the dictionary.
Example: s = "leetcode", wordDict = ["leet", "code"]
Output: true