leetcode 139. 单词拆分

思路

  1. 定义一个bool类型的dp切片,dpi表示字符串s中前i个字符可以在wordDict中找到
  2. 初始化 dp0 = true,空字符串可以被拆分。
  3. 遍历字符串 s 的每个位置 i,并在每个位置 j(0 <= j < i)检查子串 sj:i 是否在字典中,如果满足条件且 dpj = true,则更新 dpi = true。
  4. 最终返回 dplen(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
}
相关推荐
fpcc30 分钟前
数据结构和算法—数学的应用
数据结构·c++·算法
皓月斯语33 分钟前
B4451 [GESP202512 四级] 建造 题解
数据结构·c++·算法·题解
z小猫不吃鱼1 小时前
模型剪枝经典论文精读:DepGraph: Towards Any Structural Pruning
算法·机器学习·剪枝
Ulyanov2 小时前
Python实现6-DOF刚体仿真器(下)——环境扰动与控制闭环
开发语言·python·算法·系统仿真·雷达电子对抗·导引头
牧以南歌〆2 小时前
数据结构<八>链式队列
c语言·数据结构·算法
Reart2 小时前
Leetcode 188.买卖股票的最佳时机4(718)
后端·算法
2601_950760792 小时前
BCMA:急性髓系白血病免疫治疗的新型可行靶点
人工智能·算法·蛋白
Reart3 小时前
Leetcode 123.买卖股票的最佳时期3(内有随心谈,718)
后端·算法
可编程芯片开发3 小时前
基于RMDCFT算法的天基雷达空间机动目标检测方法MATLAB仿真,对比FRFT和DFT算法
算法
noipp4 小时前
推荐题目:洛谷 B2099 矩阵交换行
线性代数·算法·矩阵