[Leetcode dynamic programming C++] 139. Word Break

139. Word Break

Insert picture description here

class Solution {
    
    
public:
    bool wordBreak(string s, vector<string>& wordDict) {
    
    
        vector<bool> DP(s.size()+1, false);  // 动态规划,表示此前的串是否为真
        DP[0] = true;
        for(int ii = 0; ii < s.size(); ii++) {
    
    
            if(DP[ii]) {
    
    
                for(auto word : wordDict) {
    
    
                    int jj = ii + word.size();
                    if(jj <= s.size() && s.substr(ii, word.size()) == word) DP[jj] = true;
                }
            }
        }
        return DP[s.size()];
    }
};

Guess you like

Origin blog.csdn.net/m0_37454852/article/details/114145710