刷题笔记46-动态规划part08篇

@

动态规划

● 139.单词拆分

139.单词拆分

139.单词拆分

法1:动态规划

     bool wordBreak(string s, vector<string>& wordDict) {
        unordered_set<string> wordSet(wordDict.begin(),wordDict.end());
        vector<bool> dp(s.length() + 1,false);
        dp[0] = true;
        for (int i = 1; i <= s.size(); ++i) {
            for (int j = 0; j < i; ++j) {//wordSet.size()
                string word = s.substr(j, i - j);//(i, j - i)
                if (dp[j] && wordSet.find(word) != wordSet.end()) {
                    dp[i] = true;
                }
            }
//            cout << "dp[i]值: " << i << " "<< dp[i] << endl;
        }
        for (const auto &item: dp)
            cout << item << endl;
        return dp.back();
    }
posted @ 2023-05-29 22:51  Supersource  阅读(12)  评论(0)    收藏  举报