9 动态规划解单次词拆分

描述:给定一个非空字符串和一个包含非空单次的列表wordDict,判定s是否可以被空格拆分成一个或多个在字典中出现的单词。

说明:
        1 拆分式可以重复使用字典中的单词。
        2 你可以假设字典中没有重复的单词。

示例1:
输入:
        s="leetcode"
        wordDict=["leet","code"]
输出true
解释:因为"leetcode"可以被拆分成"leet""code"

分析:这题让把字符串拆分成一些子串,并且判断这些子串是否在字典wordDict中,可以使用动态规划的方式进行解决,定义动态数组dp[i]:表示字符串前i个字符经过拆分是否存在于字典wordDict中,如果要求取dp[i],我们向前截取k个字符串,判断子串[i-k+1,i]是否存在于wordDict中,并且前面的[0,i-k]子串也是否存在于wordDict中;

//函数返回值是布尔类型,表征是否能被字典所拆分,参数是需要进行判断的String以及字典列表list<String>
public Boolean stringPartition(String s,List<String>wordDict)
{
//定义Boolean类型的动态数组
Boolean dp[]=new Boolean[s.length()];
//首先进行动态数组进行初始化,即判断字典中是否存在第一个字母,由于substring取得是右开集,所以其取得是[0,1)也就是第一个字母
if(wordDict.contains(s.substring(0,1)))
{
dp[0]=true;
}else
{
dp[0]=false;
}
//进行动态数组的更新
for(int i=1;i<s.length();i++)
{
//如果[0,i+1)也就是从0取到i+1这个子串存在于字典中,就不需要进行下一步动态判断,dp[i]直接等于true,并直接跳出进行下一个i的判断
if(wordDict.contains(s.substring(0,i+1)))
{
dp[i]=true;
continue;
}
//如果前面不成立,就进行往前判断,判断子串[j][i]子串是否存在以及dp[j-1]是否存在,两者均成立时,表明可以进行分割,
for(int j=i-1;j>1;j--)
{
if(wordDict.contains(s.substring(j))&&dp[j-1])
{
dp[i]=true;
continue;
}
//上面两个条件均不成立,表明dp[i]无法进行划分
dp[i]=false;
}}
return dp[s.length()-1];
}

递归求解:

public Boolean stringPartition2(String s,List<String>wordDict,int index)
{
//表示到了最后一步了,前面已经成功了
if(index>=s.length())
{
return true;
}
Boolean flag=false;
//index之前已经可以构成子串,从index开始寻找
for(int i=index;i<s.length();i++)
{
if(wordDict.contains(s.substring(index,i+1)))
{
flag=flag||stringPartition2(s,wordDict,i+1);
}
}
return flag;
}

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

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

相关文章

批量采集淘宝商品数据,有哪些方式可以实现?

引言 在当今的数字化时代&#xff0c;数据已经成为企业竞争的核心资源。对于电商行业来说&#xff0c;对商品数据的采集和分析更是关键。淘宝作为中国最大的电商平台之一&#xff0c;其丰富的商品数据和用户行为数据具有极高的价值。那么&#xff0c;如何批量采集淘宝商品数据…

The module to import is incompatible with the current project【鸿蒙开发-BUG已解决】

文章目录 项目场景:问题描述原因分析:解决方案:心得体会:知识点OpenHarmony:HarmonyOS:项目场景: 报错: The module to import is incompatible with the current project 问题描述 希望通过 import module 将该模块引入到我的项目。 导入后出现错误,因为项目和模块…

基于51单片机冰箱温度控制器设计

**单片机设计介绍&#xff0c; 基于51单片机冰箱温度控制器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机冰箱温度控制器设计是一个非常实用的项目。以下是一个基本的介绍&#xff1a; 系统概述&#xff1a; …

Ubuntu20.04用D435i运行VINS-Fusion时出现“追踪与中断点陷阱”的问题该怎么解决

在使用D435i运行VINS-Fusion时出现了以下画面: 该错误显示&#xff1a;追踪与中断点陷阱。在网上查了一堆&#xff0c;说是core file的错误&#xff0c;但修改后也没有解决。实际上&#xff0c;真正的原因是&#xff1a;文件的路径错了。 打开VINS-Fusion的文件所在的空间&…

phpstorm使用教程

1.界面优化 ctrlalts --->Plugins--->搜素Material Theme UI--->安装--->重启phpstorm--->tool--->Material Theme--->Material Theme Chooser--->选择自己喜欢的风格就行 2.安装界面插件之后&#xff0c;修改字体颜色有讲究&#xff1a;需要点击图片…

影刀实例二,小某书如何持续下载图片

一&#xff0c;案例背景&#xff1a; 小某书平台&#xff0c;利用影刀rpa搜索关键词&#xff0c;然后下载对应文章的图片. 二&#xff0c;思路 1. 登录小某书平台&#xff0c;将网页放大最大【手动完成&#xff0c;作为初始状态】 2. 利用影刀命令【打开输入对话框】获得要搜索…

替换动态字符串

//{tokenid}是url里面要替换的string if( retul[i].url.includes("{tokenid}")){ var re new RegExp ( "{tokenid}" , "g" ); retul[i].url retul[i].url.replace ( re , tokenid ); // retul[i].url.replace("…

HCIA-H12-811题目解析(2)

1、【单选题】 在以太网这种多点访问网络上PPPOE服务器可以通过一个以太网端口与很多PPPOE客户端建立起PPP连接&#xff0c;因此服务器必须为每个PPP会话建立唯一的会话标识符以区分不同的连接PPPOE会使用什么参数建立会话标识符? 2、【单选题】PPP协议定义的是OSI参考模型中…

【Python】Selenium自动化测试框架

设计思路 本文整理归纳以往的工作中用到的东西&#xff0c;现汇总成基础测试框架提供分享。 框架采用python3 selenium3 PO yaml ddt unittest等技术编写成基础测试框架&#xff0c;能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开&#xff0…

java--json工具

对象转化为string类型时,时间类型保持为字符串类型,而不是转化为时间戳(数字) JsonUtils .java package com.hfwy.energyelectrolysisauxiliary.utils;import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import…

Spring Cloud + Nacos 项目启动失败【No spring.config.import property has been defined】

在 Spring Cloud 项目使用 bootstrap.yaml 配置文件&#xff0c;添加 nacos 等相关参数配置&#xff0c;启动服务抛入如下异常&#xff1a; org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set ... …

ubuntu配置免密登录vscode

1、配置免密登录 &#xff08;1&#xff09;在windows系统cmd下运行命令 ssh-keygen 一路回车&#xff0c;将会在C:\Users\用户名\.ssh目录下生成两个文件&#xff1a;id_rsa和id_rsa.pub。如下图所示。 &#xff08;2&#xff09;进入.ssh目录。如果想使用root用户&#xff0…

fastadmin学习笔记-----下拉框联动

fastadmin学习笔记----- fastadmin下拉框联动 学习笔记 下拉框联动 在项目中经常需要用到下拉框联动。网上的资料多有不全&#xff0c;所以根据自身经验&#xff0c;以笔记的形式发布出来。仅供参考。 上边的“ 状态 ” 下拉框用的动态下拉框&#xff0c;就是&#xff0c;s…

抖去推--短视频账号矩阵系统saas工具源码技术开发(源头)

目录 一、短视频矩阵系统搭建常见问题&#xff1f; 二、账号矩阵如何打造&#xff1f;&#xff08;企业号、员工号、达人号裂变&#xff09; 三、无人直播解决什么问题&#xff1f; 一、短视频矩阵系统搭建常见问题&#xff1f; 1、抖去推的短视频AI矩阵营销软件需要一定的技…

Python爬虫404错误:解决方案总结

在进行网络爬虫开发的过程中&#xff0c;经常会遇到HTTP 404错误&#xff0c;即“Not Found”错误。这种错误通常表示所请求的资源不存在。对于爬虫开发者来说&#xff0c;处理这类错误是至关重要的&#xff0c;因为它们可能会导致爬虫无法正常工作。本文将探讨Python爬虫遇到4…

Springboot 集成Redis

一、pom添加依赖 <!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需common-pool2--><dependency&…

linux chmod命令详解

linux chmod命令详解 一、chmod命令使用方法二、chown与chmod的区别 一、chmod命令使用方法 chmod命令用于修改文件或目录的权限。在Linux系统中&#xff0c;文件和目录的权限分为读&#xff08;r&#xff09;、写&#xff08;w&#xff09;和执行&#xff08;x&#xff09;三…

易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]

文章目录 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章…

inBuilder低代码平台新特性推荐-第十一期

今天来给大家带来的是inBuilder低代码平台特性推荐系列第十一期——子表启用卡片式编辑&#xff01; 一、 场景介绍 表单子表的列比较多的场景中&#xff0c;若使用列表自带编辑器需要频繁拖动横向滚动条&#xff0c;而且不易进行数据分析、自查。所以项目中希望将子表的数据…

名创优品迈向“超级品牌”的关键两步

本文转载自产业科技 从国内到国外&#xff0c;从货架小店到超级门店&#xff0c;从便宜好物到兴趣消费&#xff0c;名创优品已经很难再被普通的零售概念所定义&#xff0c;它越来越像一个城市的潮流生活符号&#xff0c;标记出最活跃的年轻消费群体。 形象重塑背后可见品牌进…