算法学习day46动态规划part08-139
package LeetCode.DPpart08; import java.util.HashSet; import java.util.List; /** * 139. 单词拆分 * 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 * 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 * 示例: * 输入: s = "leetcode", wordDict = ["leet", "code"] * 输出: true * 解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。 * */ public class WordBreak_139 { public boolean wordBreak(String s, List<String> wordDict) { HashSet<String> set = new HashSet<>(wordDict); boolean[] valid = new boolean[s.length() + 1]; valid[0] = true; for (int i = 1; i <= s.length(); i++) { for (int j = 0; j < i && !valid[i]; j++) { if (set.contains(s.substring(j, i)) && valid[j]) { valid[i] = true; } } } return valid[s.length()]; } }
分类:
算法学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署