leetcode 139. 单词拆分

思路

  1. 定义一个bool类型的dp切片,dp[i]表示字符串s中前i个字符可以在wordDict中找到
  2. 初始化 dp[0] = true,空字符串可以被拆分。
  3. 遍历字符串 s 的每个位置 i,并在每个位置 j(0 <= j < i)检查子串 s[j:i] 是否在字典中,如果满足条件且 dp[j] = true,则更新 dp[i] = true。
  4. 最终返回 dp[len(s)] 表示整个字符串 s 能否被拆分。

代码

go 复制代码
func wordBreak(s string, wordDict []string) bool {
    n :=len(s)
    dp := make([]bool,n+1)
    dp[0]=true
    for i:=1;i<=n;i++{
        for j:=0;j<i;j++{
            if dp[j] && contains(wordDict,s[j:i]){
                dp[i]=true
                break
            }
        }
    }
    return dp[n]
}

func contains(wordDict []string, word string) bool {
	for _, w := range wordDict {
		if w == word {
			return true
		}
	}
	return false
}
相关推荐
智驱力人工智能36 分钟前
仓库园区无人机烟雾识别:构建立体化、智能化的早期火灾预警体系 无人机烟雾检测 无人机动态烟雾分析AI系统 无人机辅助火灾救援系统
人工智能·opencv·算法·目标检测·架构·无人机·边缘计算
Christo341 分钟前
2022-《Deep Clustering: A Comprehensive Survey》
人工智能·算法·机器学习·数据挖掘
天真小巫1 小时前
2025.12.22总结(边工作,边强大)
职场和发展
Yzzz-F1 小时前
牛客周赛round123 G小红出千[补题][滑动窗口]
算法
肆悟先生1 小时前
3.16 含有可变参数的函数
c++·算法
步步为营DotNet2 小时前
深度解析.NET中属性(Property)的幕后机制:优化数据访问与封装
java·算法·.net
Swift社区2 小时前
LeetCode 454 - 四数相加 II
java·算法·leetcode
tokepson2 小时前
反向传播
深度学习·算法·ai·反向传播
Xの哲學2 小时前
Linux AQM 深度剖析: 拥塞控制
linux·服务器·算法·架构·边缘计算
艾醒2 小时前
大模型原理剖析——突破LLM效率瓶颈:多标记预测(MTP)技术深度解析与实战
算法