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
}
相关推荐
2301_8008951013 小时前
信息安全数学基础复习
算法
爱折腾的小黑牛13 小时前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw13 小时前
题解:P17078 夏日甜点
c++·学习·算法·图论
海石14 小时前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
Tisfy14 小时前
LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数
算法·leetcode·深度优先··题解·连通图·全连通分量
海石14 小时前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode
L歪歪君15 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
m0_4665252915 小时前
从“算法内卷”到“可信易用” 东软多模态医学人工智能平台开启无代码科研新时代
人工智能·算法
码少女15 小时前
数据结构——冒泡排序及优化
数据结构·算法·排序算法
tyqtyq2215 小时前
营养餐单规划:AI 科学饮食规划系统的鸿蒙实现
人工智能·学习·华为·职场和发展·生活·harmonyos