We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
出处 LeetCode 算法第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
出处 LeetCode 算法第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
方法一,采用递归的方式,最终超时
方法二,采用动态规划
// 方法一,递归 function helper(s, wordDict, temp, result) { if (!s) { result.push(true); return; } for (var i = 0; i <= s.length; i++) { if (wordDict.indexOf(s.slice(0, i)) >= 0) { temp.push(s.slice(0, i)); helper(s.slice(i), wordDict, temp, result); temp.pop(); } } } var wordBreak = function (s, wordDict) { var result = []; var temp = []; helper(s, wordDict, temp, result); return result[0] || false; }; // 方法二,动态规划 var wordBreak = function (s, wordDict) { var dp = []; for (var i = 0, len = s.length; i <= len; i++) { if (wordDict.indexOf(s.slice(0, i)) >= 0) { dp[i] = true; } for (var j = 0; j < i; j++) { if (dp[j] && wordDict.indexOf(s.slice(j, i)) >= 0) { dp[i] = true; } } } return dp[s.length] || false; }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
习题
思路
方法一,采用递归的方式,最终超时
方法二,采用动态规划
解答
The text was updated successfully, but these errors were encountered: