您的位置:首页 > 财经 > 金融 > 企业服务专员_站长统计黄页网站下载大全_百度指数网址是什么_百度小说风云榜排名

企业服务专员_站长统计黄页网站下载大全_百度指数网址是什么_百度小说风云榜排名

2025/3/9 8:52:12 来源:https://blog.csdn.net/aKainRe/article/details/145955467  浏览:    关键词:企业服务专员_站长统计黄页网站下载大全_百度指数网址是什么_百度小说风云榜排名
企业服务专员_站长统计黄页网站下载大全_百度指数网址是什么_百度小说风云榜排名

139. 单词拆分

  • 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。

  • 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

  • 思路:

    1. 定义状态:
    • 设dp[i]表示字符串s的前 i 个字符(即 s[0:i])

    • 需计算 dp[len(s)],即整个字符串 s 是否可以被拼接

    1. 状态转移方程:
    • 对于每个位置i,需要检查所有可能的分割点 j(0 <= j < i),检查 s[j:i] 是否在字典中,并且 dp[j] 是否为 true

    • 如果存在这样的j,则 dp[i] = true

class Solution(object):def wordBreak(self, s, wordDict):""":type s: str:type wordDict: List[str]:rtype: bool"""# 将字典转换为集合,方便快速查找wordSet = set(wordDict)n = len(s)dp = [False] * (n + 1)# 创建n+1个值全为False的数组dpdp[0] = True  # 空字符串可以被拼接for i in range(1, n + 1):  # 遍历所有可能的结束位置for j in range(i):  # 遍历所有可能的分割点if dp[j] and s[j:i] in wordSet:  # 如果s[j:i]在字典中,且dp[j] 为truedp[i] = Truebreak  # 找到一个有效的分割点即可return dp[n]
  • 时间复杂度: O(n^2)
  • 空间复杂度: O(n)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com