leetcode-139-单词拆分
题目描述:
方法一:动态规划 O(n^2) O(n)
class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: maxlen=0 for word in wordDict: if len(word)>maxlen: maxlen=len(word) res=[0]*len(s) for i in range(len(s)): p=i while(p>=0 and i-p<=maxlen): # 两个条件 if (res[p]==1 and s[p+1:i+1] in wordDict) or (p==0 and s[p:i+1] in wordDict): res[i]=1 break p-=1 return True if res[-1]==1 else False
另:
class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: arr,wordSet=[0],set(wordDict) for i in range(len(s)): for j in arr[::-1]: if s[j:i+1] in wordSet: arr.append(i+1) break return arr[-1]==len(s)
方法二:记忆化回溯
方法三:宽度优先搜索
略
转载于:https://www.cnblogs.com/oldby/p/11197397.html
leetcode-139-单词拆分相关推荐
- Leetcode 139. 单词拆分
Leetcode 139. 单词拆分 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-break/ 本质上 ...
- leetcode - 139. 单词拆分
139. 单词拆分 -------------------------------------------- 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以 ...
- LeetCode 139. 单词拆分(DP)
1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字 ...
- LeetCode 139. 单词拆分(动态规划)
题目描述 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词. 你可以假设字典 ...
- [leetcode]139. 单词拆分
1.递归+备忘录 class Solution {string s;vector<string> wordDict;unordered_set<string>m_set;vec ...
- 101. Leetcode 139. 单词拆分 (动态规划-完全背包)
步骤一.确定状态: 确定dp数组及下标含义 dp[j]表示的是长度为j的字符串(容量为j的背包)能否被拆分成1个或者多个单词 里面的值, 所以这里的dp[j]非1即0 步骤二.推断状态方程: if d ...
- LeetCode 140. 单词拆分 II(DP+回溯)
1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中.返回所有这些可能的句子. 说明: 分隔时可以重复使 ...
- 139. 单词拆分 ——【Leetcode每日一题】
139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典.请你判断是否可以利用字典中出现的单词拼接出 s . 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重 ...
- 代码随想录算法训练营day46 | 动态规划之背包问题 139.单词拆分
day46 139.单词拆分 1.确定dp数组以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp[i] 139.单词拆分 题目链接 解题思路:单词就是物品,字 ...
- 代码随想录算法训练营第五十天|动态规划:139.单词拆分、多重背包理论基础、背包问题总结
[139.单词拆分] 这个题目是一个背包问题.但是他稍微有点不太一样.在于这题判断能否装满背包是在判断单词是否出现在字典中,如果出现,就代表能装满. 背包是长度为i的字符串 物品是长度为i-j的子串 ...
最新文章
- C# FTp 上传,下载
- Django-RQ介绍
- java五层架构_Web五层架构
- Linux 查找进程与结束进程
- 虚拟机 linux 盘分小了,增加虚拟机硬盘分区大小
- 前端项目:基于Nodejs+vue开发实现酒店管理系统
- Delphi POS打印的处理
- PVID和VID的理解
- [dp][思维]Paranoid String CF1694B
- HDU 1224(动态规划)
- 【软考】下午题 解题思路总结
- nginx隐藏 X-Powered-By HTTP头
- 激活windiws10家庭版
- 技术与经济之六:现代化的陷阱
- centos7安装ZipArchive
- 初三计算机课程试题,中考信息技术试题
- Windows 11 win to go 安装硬盘无法启动解决方法之一
- 【51单片机】串口通信/LED点阵
- 数学不好能不能学好编程?
- TensorFlow学习笔记——(3)TF2常用函数
热门文章
- CF682C Alyona and the Tree
- 【笔试题】简单的两道笔试题(1、打印杨辉三角;2、三个数排序)
- unity(2017.3) C# 常用API
- InSAR 处理软件
- 24、JSON与OC互相转化
- 用计算机答题答案提交后能否改错,南京晓庄计算机操作系统习题库含答案全1-5章...
- java类的讲解_【java 基础】java类的权限讲解
- python语言特点依赖平台吗_python语言的特点
- P1141 01迷宫(BFS+记忆化)
- 插入函数c语言,线性表的插入函数