news 2026/9/28 20:57:29

单词拆分的动态规划解法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单词拆分的动态规划解法

139. 单词拆分 - 力扣(LeetCode)

给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。

注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

示例 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

解题思路:

定义dp[i]表示:字符串s的前 i 个字符(即子串s[0..i-1])能否由字典中的一个或多个单词拼接而成。

显然dp[0] = true,表示空串可以被拼出(作为递推的起点)。

对于i从 1 到n(n = s.length()),我们枚举最后一个单词的起始位置 j(0 ≤ j < i):

  • 如果dp[j] == true,说明前j个字符已经能拼出;

  • 并且子串s[j..i-1]也出现在字典中;

那么前i个字符就能拼出,即dp[i] = true。

dp[j]&&wordDictSet.contains(s.substring(j,i)

动态规划五部走:

1. 状态表示
dp[i]表示:字符串s的前 i 个字符(即子串s[0..i-1])能否由字典中的一个或多个单词拼接而成。

2. 状态转移方程

dp[i] = true,当且仅当存在某个 j(0 ≤ j < i),使得:
dp[j] == true 且 s[j..i-1] 在 wordDict 中

3. 初始化

dp[ 0 ] = true 表示空字符串在字典中

4. 填表顺序

由于dp[i]只依赖下标比i小的状态,所以可以从前往后依次填表

5. 返回值

dp[ s.length() ]

class Solution { public boolean wordBreak(String s, List<String> wordDict) { Set<String> wordDictSet = new HashSet(wordDict); boolean[] dp = new boolean[s.length()+1]; dp[0] = true; for(int i=1;i<=s.length();i++){ for(int j=0;j<i;j++){ if(dp[j]&&wordDictSet.contains(s.substring(j,i))){ dp[i] = true; break; } } } return dp[s.length()]; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 20:56:31

无需WSL:abtop在Windows上监控AI编码Agent与孤儿端口检测实战

无需WSL&#xff1a;abtop在Windows上监控AI编码Agent与孤儿端口检测实战 【免费下载链接】abtop Like htop, but for AI coding agents. Monitor Claude Code & Codex CLI sessions, tokens, context window, rate limits, and ports in real-time. 项目地址: https://g…

作者头像 李华
网站建设 2026/9/28 20:55:44

2026年智算互联芯片融资盘点:17家企业获投,4家迈入资本通道

智算集群的规模持续扩张&#xff0c;高速互联芯片正被推到产业链支出的前排。2026年以来&#xff0c;DPU、智能网卡、交换芯片、RDMA网络芯片、面向超节点的Scale-Up互联芯片&#xff0c;以及CPO/NPO光互联芯片等细分方向&#xff0c;融资与上市节奏明显提速。本文按最近一次融…

作者头像 李华
网站建设 2026/9/28 20:54:53

姿态估计+时间轴对齐:用关键点数据量化舞蹈进阶幅度

先说一个能落地的结论&#xff1a;舞蹈进步程度不是只能靠肉眼判断。只要首周首场和次周首场两段视频都拍到了完整全身&#xff0c;就能用姿态估计技术把它量化成一组数据。比如肘关节角度误差缩小了多少、抬手动作的覆盖率提升了几帧、两段视频在相同动作点的姿态相似度上升了…

作者头像 李华