0
点赞
收藏
分享

微信扫一扫

【LeetCode】139. 单词拆分

1.题目

给定一个字符串​​s​​​,以及一个字典​​wordDict​​,判断这个字符串是否可以从字典的中的单词构造而成。字典中的单词可以无限次重复使用。

2.思想

dp思想
如果之前写过爬楼梯,那么可以抱着爬楼梯的思想看看这道题,就可以发现其实这些题都是换汤不换药的。爬楼梯一次可以爬1步,2步。最后看有多少种方法爬完楼梯。这里的拼字符串每次可以爬的步数则是字典中的单词长度,但是有个限制就是拼接的字符串需要和字符串匹配上。(相较于爬楼梯多了一个限制)
具体来说:

  • step 1:设置​​dp[i]​​​表示字符串​​s[:i]​​​是否可以根据​​wordDict​​拼凑出来。
  • step 2:那么当​​dp[i]​​​ 为True时,可以将字典中的所有词都处理一下,如果后续的字符串和字典中的字能匹配,那么就更新一下​​dp[i+len(word)]​​​ 的值(从​​False->True​​)
  • step 3: 最后输出​​dp[-1]​

3.代码

举报

相关推荐

0 条评论