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
}
相关推荐
Asize7 分钟前
438. 找到字符串中所有字母异位词
算法
Asize14 分钟前
283. 移动零
算法
船厂电气自动化ai大模型2 小时前
AI大模型与数学·第57课 傅里叶全套工具链综合实战:串联级数/连续变换/DFT/FFT,图像、音频、扩散模型完整例题
数据结构·人工智能·深度学习·算法·机器学习
人工智能培训3 小时前
人工智能数据安全下的个人信息保护实践方案
大数据·人工智能·算法·生活
我命由我123453 小时前
财务学习 - 权责发生制(应收应付制)
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
元启数宇4 小时前
幕墙AI设计算法逻辑:元启数宇如何智能分格
人工智能·算法
宵时待雨4 小时前
优选算法专题16:多源BFS
算法·宽度优先
重生之后端学习4 小时前
53. 最大子数组和[中等]✅
java·数据结构·算法·leetcode·职场和发展
INGNIGHT4 小时前
1908 · 布尔表达式求值(stack单调栈&dfs)
开发语言·c++·算法
笨笨饿4 小时前
#121_图传中的H.364编码与MP4的联系
linux·运维·前端·单片机·嵌入式硬件·面试·职场和发展