当前位置: 首页 > news >正文

139. 单词拆分

在这里插入图片描述
思路
完全背包(一个物品可以选多次)
dp代表字符长度(容量)
初始化:
wordDict转为集合:集合in时间复杂度o(1)
dp初始为False dp[o]为空串的情况 默认True
i既可以理解成:i之前的总字符是否由字典里的单词拼接而成 以及[i:j]区间的开始字符
dp[i]==True and s[i:j] in wordDict: i之前的字符组成情况及i-j之间的字符情况:可以理解为 [0,j](包含j)是根据[0,i]和[i:j]来决定,如果两个都是由字典组成,那[0,j]自然也是由字典组成,即d[j]=True (可以想象成d[i]=d[i-1]+X)

class Solution(object):def wordBreak(self, s, wordDict):""":type s: str:type wordDict: List[str]:rtype: bool"""#集合in时间复杂度o(1)wordDict=set(wordDict)#dp代表字符串长度dp=[False]*(len(s)+1)dp[0]=Truefor i in range(len(s)):for j in range(i+1,len(s)+1):if dp[i]==True and s[i:j] in wordDict:dp[j]=Truereturn dp[-1]

http://www.mrgr.cn/news/27322.html

相关文章:

  • 业务资源管理模式语言14
  • C++基础面试题 | 什么是C++中的虚继承?
  • C/S架构和B/S架构哪个更好用一些?
  • 如何简化机器人模型,加速仿真计算与可视化
  • 【算法】 滑动窗口—最长无重复子串
  • GitHub上克隆项目
  • 数据结构基础详解:哈希表【理论计算篇】开放地址法_线性探测法_拉链法详解
  • unity 图片置灰shader
  • C++速通LeetCode简单第15题-有效的括号(全网最易懂代码注释)
  • 【数据结构】6——图1,概念
  • 如何搭建一个外卖会员卡系统?
  • 【面向对象】设计模式分类
  • Day11-K8S日志收集及搭建高可用的kubernetes集群实战案例
  • 多目标优化算法求解LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集,MATLAB代码
  • 图数据库 neo4j 安装
  • 回溯-全排列
  • 关于java同步调用多个接口并返回数据
  • 数据结构之快速排序、堆排序概念与实现举例
  • 如何注册Liberty大学并获取Perplexity Pro
  • linux 操作系统下cupsenable命令介绍和使用案例