Leetcode 139 单词拆分
JAVA DP:
public final boolean wordBreak(String s, List<String> wordDict) { Set<String> set = new HashSet<String>(); for (String word : wordDict) set.add(word); return search(s, set, new HashMap<String, Boolean>()); } private final boolean search(String s, Set<String> wordDict, Map<String, Boolean> cache) { if (cache.keySet().contains(s)) return cache.get(s); int len = s.length(); boolean res = false; for (int i = 0; i <= len; i++) { String pre = s.substring(0, i); if (!wordDict.contains(pre)) continue; if (search(s.substring(i, len), wordDict, cache) || i == len) { res = true; break; } } cache.put(s, res); return res; }
JS DP:
/** * @param {string} s * @param {string[]} wordDict * @return {boolean} */ var wordBreak = function (s, wordDict) { let wordDictSet = new Set(); for (let i = 0; i < wordDict.length; i++) wordDictSet.add(wordDict[i]); return search(s, wordDictSet, new Map()); }; var search = function (s, wordDict, cache) { if (cache.get(s) !== undefined) return cache.get(s); let len = s.length, res = false; for (let i = 0; i <= len; i++) { let pre = s.substring(0, i); if (!wordDict.has(pre)) continue if (search(s.substring(i, len), wordDict, cache) || i == len) { res = true; break; } } cache.set(s, res); return res; }
当你看清人们的真相,于是你知道了,你可以忍受孤独
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-07-13 Leetcode 129 求根到叶子节点数字之和 DFS优化
2020-07-13 Leetcode 125 验证回文串 双指针
2020-07-13 Leetcode 08.02 迷路的机器人 缓存加回溯
2020-07-13 Leetcode 38 外观数列
2020-07-13 Leetcode 801 使序列递增的最小交换次数