leetcode140. 单词拆分 II(回溯+记忆化)

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。

说明:

分隔时可以重复使用字典中的单词。
你可以假设字典中没有重复的单词。
示例 1:

输入:
s = “catsanddog”
wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]
输出:
[
“cats and dog”,
“cat sand dog”
]

代码

class Solution {List<String> stringList=new ArrayList<>(); Set<Integer> check=new HashSet<>();int maxLen=0,minLen=Integer.MAX_VALUE;public List<String> wordBreak(String s, List<String> wordDict) {for(String word:wordDict)//获取单词的长度范围,限制可选择的长度{maxLen= Math.max(maxLen,word.length());minLen= Math.min(minLen,word.length());}wBreak(s,0,wordDict,new ArrayList<>());return stringList;}public void wBreak(String s,int pos,List<String> wordDict,List<String> list) {if(pos==s.length())//边界{stringList.add( String.join(" ",list));return;}if(check.contains(pos))return;int resL=stringList.size();for(int i=minLen;i+pos<=s.length()&&i<=maxLen;i++){String sub=s.substring(pos,pos+i);for(String word:wordDict)//遍历单词{if(sub.equals(word)){list.add(word);wBreak(s,i+pos,wordDict,list);list.remove(list.size()-1);//回溯}}}if(stringList.size()==resL)//结果序列没有变,说明该位置往后无法产生结果check.add(pos);}
}

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

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

相关文章

#loj 3058 [HNOI2019] 白兔之舞

单位根反演思博题 模数是乱给的记得整个任意模数ntt k为p-1的约数意味着一定存在k次单位根&#xff0c;设g是p的原根则\(w_{k}^{1}g^{\frac{k-1}{p}}\) 既然k次单位根存在自然考虑单位根反演了 设\(f(i)\)表示跳了i步并且停在了第二维为y的顶点的方案数 设\(st\)表示初始向量而…

标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...

结合企业自动化集群场景讲解&#xff0c;轻松玩转SaltStack自动化配置管理工具第1章 SaltStack基础应用SaltStack安装SaltStack认证Saltstack远程执行SaltStack配置管理第2章 SaltStack数据系统SaltStack数据系统-Grains 客户端向服务端发送状态SaltStack数据系统-paiil 服务…

JS 对象引用问题

var a {n:1}; var b a; a {n:2}; a.x a ;console.log(a.x);console.log(b.x); var a {n:1}; var b a; a.x a {n:2}; console.log(a.x);console.log(b.x); 这两个问题主要理解两点就很简单了。 对象是引用类型&#xff0c;改变赋值只是改变指针的引用。运算符相当于改变…

工程代码_Egret开发笔记(二)基础工程代码阅读

代码目录结构在Egret Wing中打开上一节中我们创建的项目工程&#xff0c;查看代码目录结构&#xff0c;Forward在如下图中标记了各个目录的及关键文件的用途。代码阅读理解接下来我们从web入口一步一步阅读初始代码。首先打开index.html文件&#xff0c;我们看到index文件内容如…

知晓云助力小程序开发

小程序开发遇到瓶颈虽然腾讯提供了小程序解决方案&#xff0c;https://cloud.tencent.com/solution/la。但是对于普通开发者或者小企业的开发人员来说&#xff0c;购买域名&#xff0c;网站备案、部署SSL证书&#xff0c;安装会话服务器。业务逻辑上要使用数据库&#xff0c;缓…

leetcode131. 分割回文串(回溯)

给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“a”,“b”] ] 代码 class Solution {List<List<String>> stringListnew ArrayList…

Cracer渗透-windows基础(系统目录,服务,端口,注册表)

系统目录C:\Windows\system32\config\SAM (保存系统密码) 无法正常修改&#xff0c;可以进入PE系统进行修改&#xff08;先备份在清空&#xff09;利用结束后&#xff0c;再将之前备份的恢复C:\Windows\System32\drivers\hosts&#xff08;域名解析文件&#xff09;hosts欺骗&a…

java--xml文件读取(SAX)

SAX解析原理&#xff1a; 使用Handler去逐个分析遇到的每一个节点 SAX方式解析步奏&#xff1a; 创建xml解析需要的handler&#xff08;parser.parse(file,handler)&#xff09; package com.imooc_xml.sax.handler;import java.util.ArrayList;import org.xml.sax.Attributes…

算法训练营 重编码_编码训练营之后该做什么-以及如何获得成功

算法训练营 重编码by Anthony Morris安东尼莫里斯(Anthony Morris) 编码训练营之后该做什么-以及如何获得成功 (What to do — and how to find success — after a coding bootcamp) It’s almost been two years since I graduated from the Lighthouse Labs Web Developmen…

leetcode860. 柠檬水找零(贪心)

在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&#xff0…

linux防火墙开启某端口命令行,linux上防火墙 开启某个端口

linux下防火墙 开启某个端口直接在/etc/sysconfig/iptables中增加一行&#xff1a;-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT注意添加位置:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT-A RH-Fi…

imp命令导入指定表_Sqoop 使用shell命令的各种参数的配置及使用方法

点击上方蓝色字体&#xff0c;选择“设为星标”回复”资源“获取更多资源本文作者&#xff1a;Sheep Sun本文链接&#xff1a;https://www.cnblogs.com/yangxusun9/p/12558683.html大数据技术与架构点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;暴走大数据点击…

黑客频繁来袭 关注云计算的安全与保障

本文讲的是 : 黑客频繁来袭 关注云计算的安全与保障 , 【IT168 资讯】日前&#xff0c;虎嗅网遭受网络攻击的事件&#xff0c;引起业内关注。2月27日晚&#xff0c;虎嗅网中断访问&#xff0c;虎嗅网新浪官方微博随即发表声明&#xff0c;表示网站受到恶意攻击&#xff0c;随…

51nod 1100:斜率最大

题目链接 斜率最大点对横坐标必相邻 #include <bits/stdc.h> using namespace std; const int maxn 1e4 100;struct point {int x, y, pos;bool operator < (const point& rhs)const{return x<rhs.x;} } a[maxn]; double xielv(point a, point b) {return (a…

ik分词和jieba分词哪个好_Pubseg:一种单双字串的BiLSTM中文分词工具

中文分词是中文自然语言处理中的重要的步骤&#xff0c;有一个更高精度的中文分词模型会显著提升文档分类、情感预测、社交媒体处理等任务的效果[1]。Pubseg是基于BiLSTM中文分词工具&#xff0c;基于ICWS2005PKU语料训练集训练而成&#xff0c;其优点在于在ICWS2005-PKU语料下…

freecodecamp_freeCodeCamp.org隐私权政策:问题与解答

freecodecampWe take your privacy seriously. And we give you full control over your data.我们把你的隐私当回事。 而且&#xff0c;我们可以完全控制您的数据。 freeCodeCamp doesnt show you ads or sell your data to anyone. Our nonprofit is instead supported by t…

leetcode1029. 两地调度(贪心算法)

公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0]&#xff0c;飞往 B 市的费用为 costs[i][1]。 返回将每个人都飞到某座城市的最低费用&#xff0c;要求每个城市都有 N 人抵达。 示例&#xff1a; 输入&#xff1a;[[10,20],[30,200],[400,50],[30,20]] 输出&…

第一阶段冲刺4

1、我昨天的成就&#xff1a;看相关android开发视频&#xff0c;上网寻找如何实现app动画效果2、遇到什么困难&#xff1a;网上的用的很高级&#xff0c;看不懂别人如何实现的&#xff0c;搬过来实现不了。3、今天的任务&#xff1a;继续实现动画效果。 转载于:https://www.cnb…

小白做淘客店铺新玩法

微信淘客在朋友圈刷了将近两个月。有些大咖赚得盆满钵满&#xff0c;有些小白交了不少学费。有人日入几千几万&#xff0c;也有入不敷出。在此咖妹并没有褒贬之意&#xff0c;只是提醒大家&#xff0c;不光淘客如此&#xff0c;其他项目亦是如此&#xff0c;别人能做成功的项目…

局域网中实现linux与windows文件共享,使用samba组建Linux与Windows局域网实现文件共享...

使用samba&#xff0c;可以组建Windows与Linux的局域网&#xff0c;Linux我用的是Fedora Core 6。Samba软件的最新版本可以从网站免费获得。共可下得5个rpm&#xff0c;分别为&#xff1a;samba-3.0.24-1.i386.rpm&#xff1a;服务器端&#xff1b;samba-client-3.0.24-1.i386.…