其他分享
首页 > 其他分享> > 139. 单词拆分

139. 单词拆分

作者:互联网

难度中等

 

给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定 s 是否可以由空格拆分为一个或多个在字典中出现的单词。

说明:拆分时可以重复使用字典中的单词。

 

示例 1:

输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。

示例 2:

输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
     注意你可以重复使用字典中的单词。

示例 3:

输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false

 

提示:

 

 

class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {

        vector<bool>dp(s.size()+1,false);
        dp[0] = true;
            for(int j = 1;j <=s.size();j++) {
                for(int i = 0;i<wordDict.size();i++) {
                    auto word = wordDict[i];
                    int word_len = word.size();
                    if(j-word_len>=0 && s.substr(j-word_len,word_len)==word) {
                        dp[j] = dp[j] || dp[j-word_len];
                    }
            }
        }
        return dp[s.size()];
    }
};

 

标签:word,示例,单词,拆分,wordDict,139,true,dp,字典
来源: https://www.cnblogs.com/zle1992/p/15522750.html