LeetCode 139 —— 单词拆分

阅读目录

    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现

1. 题目

2. 解题思路

定义 d p [ i ] dp[i] dp[i] 表示 s [ 0 , i ] s[0, i] s[0,i] 是否可以被字典中出现的单词拼接,那么状态转移方程为:

d p [ i ] = t r u e ,如果存在任意  j ∈ [ 0 , i − 1 ] , 满足  d p [ j ] = t r u e ,并且  s [ j + 1 , i ] ∈ w o r d D i c t dp[i] = true,如果存在任意\space j \in [0,i-1],\\ 满足\space dp[j] =true, 并且 \space s[j+1, i] \in wordDict dp[i]=true,如果存在任意 j[0,i1]满足 dp[j]=true,并且 s[j+1,i]wordDict

也就是 s [ 0 , j ] s[0, j] s[0,j] 可以被字典中出现的单词拼接,并且 s [ j + 1 , i ] s[j+1, i] s[j+1,i] 存在于字典中,那么 s [ 0 , i ] s[0, i] s[0,i] 也可以被拼接。

同时,我们定义空字符串 d p [ − 1 ] = t r u e dp[-1]=true dp[1]=true

由于需要两层循环,所以时间复杂度为 O ( n 2 ) O(n^2) O(n2),另外,我们需要一个哈希表来存储 w o r d D i c t wordDict wordDict,所以空间复杂度为 O ( n ) O(n) O(n)

3. 代码实现

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {vector<bool> dp(s.size(), false);unordered_map<string, bool> wordMap;for (int i = 0; i < wordDict.size(); ++i) {wordMap[wordDict[i]] = true;}for (int i = 0; i < s.size(); ++i) {for (int j = i-1; j >= -1; --j) {if (j != -1 && !dp[j]) {continue;}string sub_str = s.substr(j+1, i-j);if (wordMap.count(sub_str)) {dp[i] = true;break;}}}return dp.back();}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring源码分析之AOP开启注解

AOP开启注解 在使用注解Aspect来进行AOP操作时&#xff0c;需要在xml中进行配置 <!-- 使Aspect注解生效 --><aop:aspectj-autoproxy/> 创建BeanFactory时obtainFreshBeanFactory()在解析xml加载BeanDefinition中&#xff0c;执行parseBeanDefinitions方法进行解析发…

Springboot+vue项目零食销售商城

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;零食销售商城当然也不能排除在外。零食销售商城是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff…

Verilog 触发器状态机语言描述

触发器状态机语言描述 触发器状态机语言用于描述映射到 ILA 调试核的高级触发器逻辑的复杂触发条件。触发器状态机具有下列特性 &#xff1a; • 最多 16 种状态。 • 用于复杂状态转换的单向、双向和三向条件分支。 • 4 个内置 16 位计数器 &#xff0c; 用于对事件…

Golang编译优化——稀疏条件常量传播

文章目录 一、概述二、稀疏条件常量传播2.1 初始化worklist2.2 构建def-use链2.3 更新值的lattice2.4 传播constant值2.5 替换no-constant值 一、概述 常量传播&#xff08;constant propagation&#xff09;是一种转换&#xff0c;对于给定的关于某个变量 x x x和一个常量 c …

浙江大学 → PAT 1012:数字分类

【题目来源】https://pintia.cn/problem-sets/994805260223102976/exam/problems/type/7?problemSetProblemId994805311146147840&page0【题目描述】 给定一系列正整数&#xff0c;请按要求对数字进行分类&#xff0c;并输出以下 5 个数字&#xff1a; A1​ 能被 5 整除…

《米小圈上学记》|快乐读书,从身边的人身边的事开始!

时间&#xff0c;抓住了就是黄金&#xff0c;虚度了就是流水;书&#xff0c;看了就是学问&#xff0c;没看就是废纸:抱负&#xff0c;努力了才叫幻想&#xff0c;放弃了那只是妄想。读书&#xff0c;不一定能转变命运&#xff0c;但肯定能让我们安静&#xff0c;安静本身就是一…

js/ts全栈开发 t3 stack

技术栈 React Vite TailwindCSS / Nestjs TRPC Prisma(SQLite) / Docker GitHub: https://github.com/cooderl/react-nestjs-full-web-app t3 stack The T3 Stack is a web development stack made by Theo focused on simplicity, modularity, and full-stack type safet…

红米1s 刷入魔趣 (Mokee)ROM(Android 7.1)

目录 背景准备工具硬件&#xff08;自己准备&#xff09;软件&#xff08;我会在文末提供链接&#xff09; 刷机步骤1. 重启电脑2. 安装驱动3. 刷入TWRP4. 清空数据5. 刷入魔趣6. 开机 结尾下载链接 本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 B…

Ubuntu 22.04 下 Pycharm 卸载

由于调试原因&#xff0c;Ubuntu22 下重装Pycharm 1.卸载 PyCharm 删除以下几个目录&#xff1a; 1) 程序文件目录 所有的相关文件都保存在解压缩的目录中&#xff0c; /opt/pycharm-community/ $ sudo rm -r /opt/pycharm-community/ 2) 配置文件目录 启动 PyCharm 后&…

虚拟机jvm下

jvm原理与实践 java程序的跨平台特性 jvm基本结构 JVM类加载流程和内存结构总览 类加载 加载阶段 类加载 验证阶段 类加载 准备阶段 类加载 解析阶段 类加载 初始化阶段 程序计数器 虚拟机栈&本地方法栈 栈帧操作 堆 方法区 永久代 元空间 垃圾回收 可触及性

C#面:C# 是否可以对内存直接进行操作

在C#中&#xff0c;可以通过使用指针来对内存进行直接操作。 使用 unsafe 关键字来支持指针操作&#xff0c;并且需要在项目属性中启用选项&#xff1a;允许不安全代码。使用指针可以绕过 C# 的类型安全检查&#xff0c;因此需要谨慎使用&#xff0c;并且只有在必要的情况下才…

暗区突围国际服pc端海外版新手前期如何赚钱 暗区突围新手教学

暗区突围国际服pc端海外版新手前期如何赚钱 暗区突围新手教学 暗区突围是一款极为惊险的射击游戏&#xff0c;让玩家充分感受紧张激烈的战斗以及获取财富的过程。但是有许多新手玩家是不会在游戏里赚钱的&#xff0c;也会在赚钱过程中遇到很多问题&#xff0c;我将在这篇文章…

多线程【阻塞队列】(生产者消费者模型代码实现)

阻塞队列 解耦合削峰填谷生产者消费者模型&#xff1a; 解耦合 削峰填谷 生产者消费者模型&#xff1a; 正常来说&#xff0c;wait通过notify唤醒&#xff0c;其他线程调用了take,在take的最后一步进行notify. package thread; class MyBlockingQueue{private String [] data…

细胞自动机与森林火灾与燃烧模拟

基于 元胞自动机-森林火灾模拟_vonneumann邻域-CSDN博客 进行略微修改&#xff0c;解决固定方向着火问题&#xff0c;用了一个meshv2数组记录下一状态&#xff0c;避免旧状态重叠数据失效。 参数调整 澳洲森林火灾蔓延数学建模&#xff0c;基于元胞自动机模拟多模式下火灾蔓延…

【牛客】【模板】二维前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 二维前缀和&#xff1a;pre[i][j]a[i][j]pre[i-1][j]pre[i][j-1]-pre[i-1][j-1]; 子矩阵 左上角为(x1,y1) 右下角(x2,y2…

.OpenNJet应用引擎实践——从 0-1 体验感受

目录 一. &#x1f981; 写在前面二. &#x1f981; 安装使用2.1 安装环境2.2 配置yum源2.3 安装软件包2.4 编译代码2.5 启动 三. &#x1f981; 使用效果3.1 编辑配置文件3.2 编辑 HTML 代码 四. &#x1f981; 使用感受 一. &#x1f981; 写在前面 现在互联网体系越来越往云…

java如何获取一维数组长度

获取一维数组长度的语法格式是 数组名.length 如果数组知道了长度就不用了&#xff0c;但是不知道就需要用了。 示例代码如下 public class Getarraylength{ public static void main(String[] args){ String class1[]{"张三","李四","王…

记录PR学习查漏补缺(持续补充中。。。)

记录PR学习查漏补缺 常用快捷键文件编辑素材序列标记字幕窗口帮助 效果基本3D高斯模糊查找边缘色彩颜色平衡超级键马赛克中间值变形稳定器轨道遮罩键 常用 快捷键 注意&#xff1a;比较常用的用红色字体显示 文件 快捷键作用Ctrl Alt N新建项目Ctrl O打开项目Ctrl I导入…

微服务总结

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 分布式架构相比于单体架构具…

Harbor同步仓库镜像到另一个仓库

文章目录 Harbor同步仓库镜像到另一个仓库清单文件-示例同步脚本-示例使用Python获取清单文件的示例 Harbor同步仓库镜像到另一个仓库 因为近期有业务需求需要将一个Harbor仓库的所有镜像同步到另一个仓库&#xff0c;所以写了点脚本来处理 清单文件-示例 提前准备镜像清单&…