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
}
相关推荐
VALENIAN瓦伦尼安教学设备13 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
小小晓.13 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
怕浪猫13 小时前
用了两年 AI 编程工具后,我重新理解了什么是「资深工程师」
算法·面试·架构
hetao173383713 小时前
2026-08-27~29 hetao1733837 的刷题记录
c++·算法
云淡风轻~窗明几净14 小时前
宇宙管理学猜想
算法·图论
春风解人意14 小时前
从零开始学习嵌入式P28----线程
c语言·学习·算法
luj_176814 小时前
合法避税与投资评估实战指南
c语言·开发语言·网络·经验分享·算法
ychqsq14 小时前
144.扎根
经验分享·职场和发展
Bruce_Liuxiaowei14 小时前
驴滑块拼图游戏:从19世纪的纸片谜题到数学博弈论
人工智能·算法
一直C15 小时前
Linux系统编程|信号进阶 + SystemV IPC(消息队列、共享内存)
linux·c语言·开发语言·算法·青少年编程·vim