day46 动规.p8

- 139.单词拆分
    - 求排列数,先背包再物品
```cpp
class Solution {

public:

    bool wordBreak(string s, vector& wordDict) {

        unordered_set wordTable(wordDict.begin(), wordDict.end());

        vector dp(s.size() + 1, false);

        dp[0] = true;

        for (int i = 1; i <= s.size(); i++) {

            for (int j = 0; j < i; j++) {

                string word = s.substr(j, i - j);
                // 如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。
                if (wordTable.find(word) != wordTable.end() && dp[j]) 

                    dp[i] = true;

            }

        }

        return dp[s.size()];

    }

};
```

你可能感兴趣的:(leetcode,c++)