leetcode刷题DP

word-break
遍历每个区间能不能分,a[i]表示[0,i)之间能不能分

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

你可能感兴趣的:(leetcode刷题DP)