leetcode139.单词拆分
leetcode139.单词拆分
题目
给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定 s 是否可以由空格拆分为一个或多个在字典中出现的单词。
说明:拆分时可以重复使用字典中的单词。
用例
输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。
输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
注意你可以重复使用字典中的单词。
输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
求解
/**
* @param {string} s
* @param {string[]} wordDict
* @return {boolean}
*/
var wordBreak = function(s, wordDict) {
let dp = new Array(s.length).fill(0)
for(let i=0;i<s.length;i++){
for(let j=-1;j<i;j++){
//从前面字符串满足的最终位置进行截取看是否满足
if(j==-1||dp[j]==1){
let new_str = s.substr(j+1,i-j)
//看子串是否能从字典中查找
for(let p=0;p<wordDict.length;p++){
if(new_str==wordDict[p]){
dp[i]=1
}
}
}
}
}
console.log(dp)
if(dp[s.length-1]==1){
return true
}else{
return false
}
};

浙公网安备 33010602011771号