DP
对每个字母状态进行保存和推演
dp[i] = dp[i - len(word)] && targetStr.substr(i - len(word), len(word)) == word
class Solution
{
public:
bool wordBreak(string s, vector<string> &wordDict)
{
int len_s = s.size();
vector<bool> dp(len_s + 1, false);
dp[0] = true;
for (int i = 1; i < len_s + 1; i++)
{
for (auto &word : wordDict)
{
if (word.size() <= i && dp[i - word.size()] && s.substr(i - word.size(), word.size()) == word)
{
dp[i] = true;
break;
}
}
}
return dp.back();
}
};