Имея непустую строку s и словарь wordDict, содержащий список непустых слов, определите, s можно разделить на последовательность из одного или нескольких словарных слов, разделенных пробелами.

Примечание.

  • Одно и то же слово в словаре может многократно использоваться при сегментации.
  • Вы можете предположить, что словарь не содержит повторяющихся слов.

Пример 1:

Input: s = "leetcode", wordDict = ["leet", "code"]
Output: true
Explanation: Return true because "leetcode" can be segmented as "leet code".

Пример 2:

Input: s = "applepenapple", wordDict = ["apple", "pen"]
Output: true
Explanation: Return true because "applepenapple" can be segmented as "apple pen apple".
             Note that you are allowed to reuse a dictionary word.

Пример 3:

Input: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
Output: false

Используйте динамическое программирование для решения этой проблемы.