leetcode动态规划之判断一个字符串是否是给定字符串数组组合出来的

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ONE_PIECE_HMH/article/details/52422937

简单动态规划,dp[i]表示字符串s[0~i]是否可分的bool值。

画表格可以理解:

class Solution {
public:
    bool wordBreak(string s, unordered_set<string> &dict) {
        int len=s.length();
        vector<bool> dp(len+1,false);
        dp[0]=true;
        for(int i=0;i<len;i++)
            for(int j=i;dp[i]&&j<len;j++){
            if(dict.find(s.substr(i,j-i+1))!=dict.end())
                dp[j+1]=true;
        }
        return dp[len];
    }
};


展开阅读全文

没有更多推荐了,返回首页