首页 > 其他 > 详细

139 单词拆分 dp

时间:2021-09-17 14:30:49      阅读:21      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

dp[i]表示[0,...i-1]是否是合法字符串,因为dp[i]的状态不只是由dp[i-1]决定的,而是前边每个地方都有可能成为断点,只要有一个结果是true,则结果就是true,所以对于每个dp[i]遍历其之前的每个断点

class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        unordered_set <string> wordDictSet ;
        for (auto word: wordDict) {
            wordDictSet.insert(word);
        }

        auto dp = vector <bool> (s.size() + 1);
        dp[0] = true;
        for (int i = 1; i <= s.size(); ++i) {
            for (int j = 0; j < i; ++j) {
                if (dp[j] && wordDictSet.find(s.substr(j, i - j)) != wordDictSet.end()) {
                    dp[i] = true;
                    break;
                }
            }
        }

        return dp[s.size()];
    }
};

 

 

139 单词拆分 dp

原文:https://www.cnblogs.com/libin123/p/15302901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!