LeetCode _ Word Break

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.



For example, given

s = "leetcode",

dict = ["leet", "code"].



Return true because "leetcode" can be segmented as "leet code".

  DP 

class Solution {

public:

    bool wordBreak(string s, unordered_set<string> &dict) {

        // Note: The Solution object is instantiated only once and is reused by each test case.

        int len = s.size();

        if(len <1) return false;

        if(dict.size() == 0) return false;

        vector<bool> flag(len+1,false);

        flag[0] = true;

        for(int i = 1; i< len+1;++i){

            for(int j = i-1; j>=0;--j)

                if(flag[j]==true && dict.find(s.substr(j,i-j))!= dict.end())

                {

                    flag[i] = true;

                    break;

                }

        }

        return flag[len];

    }

};

 

你可能感兴趣的:(LeetCode)