判断字符串是否能分割成字典中的单词(二)——Leetcode系列(十二)

【LVGL】显示驱动移植后控件错位/撕裂的排查与修复指南 本文详细解析了LVGL显示驱动移植后常见的控件错位、撕裂等问题,提供了从基础配置检查到高级调试技巧的全面解决方案。重点介绍了分辨率设置、颜色格式匹配、刷新函数实现等关键环节,帮助开发者快速定位和修复显示异常问题,确保UI渲染效果符合预期。 阅读详情

Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.

Return all such possible sentences.

For example, given
s = "catsanddog",
dict = ["cat", "cats", "and", "sand", "dog"].

A solution is ["cats and dog", "cat sand dog"].


My Answer:

public class Solution {
    private Map<String, Set<String>> map = new HashMap<String, Set<String>>();
    public List<String> wordBreak(String s, Set<String> dict) {
        Set<String> sentences = toSentence(s, dict);
        return setToList(sentences);
    }
    
    private Set<String> toSentence(String s, Set<String> dict){
        if(! map.containsKey(s)){
            Set<String> temp = new HashSet<String>();
            map.put(s,temp);
        }else{
        	return map.get(s);
        }
        int length = s.length();
        Set<String> mySet = map.get(s);
        if(dict.contains(s)){
            mySet.add(s);
        }
        for(int i = 1; i < length; i++){
            String head = s.substring(0,i);
            if(!dict.contains(head)){
                continue;
            }
            Set<String> tail = null;
            if(! map.containsKey(s.substring(i))){
                tail = toSentence(s.substring(i),dict);
            }else{
                tail = map.get(s.substring(i));
            }
            if(tail.size() == 0){
            	continue;
            }

            Iterator<String> tailIte = tail.iterator();
            while(tailIte.hasNext()){
            	mySet.add(head + " " + tailIte.next());
            }
            
        }
        
        return mySet;
        
    }
    
    private List<String> setToList(Set<String> set){
        List<String> list = new ArrayList<String>();
        Iterator<String> ite = set.iterator();
        while(ite.hasNext()){
            list.add(ite.next());
        }
        return list;
    }
}
题目来源:https://oj.leetcode.com/problems/word-break-ii/

leetcode每日一道(11)字符串是否能被切分为单词 题目描述 给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 例如: 给定s=“leetcode”; dict=[“leet”, “code”]. 返回true,因为"leetcode"可以被分割成"leet code". 此题可以看成是我上一篇的题目的简易版,只要找到合法的切分,就返回tru... 阅读详情

相关推荐

【中等】力扣算法题解析LeetCode139:单词拆分

这是一道动态规划问题,判断字符串能否由字典中的单词拼接而成。解题思路是定义dp数组,dp[i]表示前i个字符能否被拆分。初始化dp[0]为true,遍历字符串时检查所有可能的拆分点,若前j个字符可拆分且子串在字典中,则标记dp[i]为true。优化点包括使用HashSet存储字典和剪枝处理。最终返回dp[n]即可。

ylumwd的博客 607

判断字符串是否能分割成字典中的单词(一)——Leetcode系列(十一)

Word Break Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s = "leetco

Hooting的码农笔记本 4260

【困难】力扣算法题解析LeetCode140:单词拆分 II

这篇文章介绍了如何通过动态规划和记忆化搜索解决字符串拆分问题。给定字符串 s 和字典 wordDict,要求将 s 拆分成字典中的单词,返回所有可能的拆分方案。 关键步骤: 动态规划剪枝:先用DP判断字符串是否可拆分,避免无效递归。 记忆化搜索:通过DFS遍历所有可能拆分,缓存子串结果避免重复计算。

ylumwd的博客 1081

python 判断一个字符串能否转为字典

当获取到一个不确定字符串,在正确的情况下是可以直接转成字典的,但是,当我们的代码对提供的字符串不进行判断是否可以转成字典,就可能造成代码的报错,严重造成项目的终止等。 我是通过抛出异常的方法进行验证 def is_dict(log_content): ''' 能否转成字典 :param log_content: :return: ''' try: ...

HADLM 2147

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1020

【动态规划】拆分词句

今天继续深入学习动态规划,分析“拆分词句”这一案例,解题的关键和难点主要在于问题状态的分析。 牛客链接 题目:给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 例如: 给定s=“nowcode”; dict=[“now”, “code”]. 返回true,因为"nowcode"可以被分割成"now code". 如果没有学习过动态规划思想的同学,面对这样的一个问题多少有点一筹莫展,看似简单的问题却不知怎么

weixin_46103589的博客 708

TikTok Shop API密钥获取与PHP实战对接指南

本文详细介绍了TikTok Shop API密钥的获取流程与PHP实战对接方法。从开发者后台创建应用、获取核心的API密钥开始,逐步解析OAuth 2.0授权机制,并提供了完整的PHP封装类示例,涵盖签名生成、API调用、令牌刷新及错误处理,帮助开发者快速实现与TikTok Shop的数据对接与自动化操作。

weixin_29300241的博客 401

11、word-break

11、word-break 给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 例如: 给定s=“leetcode”; dict=[“leet”, “code”]. 返回true,因为"leetcode"可以被分割成"leet code". Given a string s and a dicti...

qq_42722278的博客 189

多传感器标定:如何统一摄像头、雷达与IMU坐标?

多传感器标定:如何统一摄像头、雷达与IMU坐标?​ ,人工智能,计算机视觉,大模型,AI,本文详细阐述多传感器标定中统一摄像头、雷达与 IMU 坐标的方法。先介绍传感器坐标系统、坐标统一必要性及变换数学基础,再分述摄像头与雷达、IMU 与摄像头、IMU 与雷达的标定原理、步骤、参数计算及结果验证,还讲解了多传感器坐标统一的整体流程,分析了标定常见问题及解决办法,介绍了常用标定工具,结合实际案例说明应用,探讨了标定精度的影响因素、提升方法及发展趋势,为相关领域提供了全面的多传感器标定指导。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

家用智能监控摄像机如何使用NAS进行存储/备份(小米智能摄像机如何解决群晖 / 飞牛 NAS 识别失败、文件目录不显示问题)

小米摄像头NAS存储总出问题?🤯 别慌!本文揭秘NAS底层逻辑,群晖、飞牛实战指南。手把手教你排查解决所有难题,轻松搞定监控录像安全备份!🔒

XiaoqiangClub的博客 2695

Leetcode 139. 单词拆分

动态规划问题,dp[k]:到k位置是否可以划分成功 class Solution { public: bool wordBreak(string s, vector&lt;string&gt;&amp; wordDict) { vector&lt;bool&gt; dp(s.size(), false); for (int i = 0; i &lt; s....

Bendaai的博客 319

Autosar软件组件分析及ARXML文件分析

Autosar软件组件分析及ARXML文件分析

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 3601

Leetcode:给定一个字符串s和一个单词字典dict,确定是否可以将s分割成一个由一个或多个字典单词组成的空格分隔的序列。

Given a stringsand a dictionary of wordsdict, determine ifscan be segmented into a space-separated sequence of one or more dictionary words. For example, givens="leetcode",dict=["leet", "code"...

LeetCode:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum 2425

2025年微信小程序获取手机号授权登录注册详细教程(含服务端)。不弹窗原因以及减少组件用量的方法

前端把获取到的code传给后端,后端获取access_token和前端传过来的code,请求服务器接口,即可获取到手机号。

coderYYY的博客 3万+

Codex 100个真实案例 - 全系列总结与Codex最佳实践全解析

历经100个案例的淬炼,我们终于来到了终点!本篇是整个系列的压轴之作——全面回顾100个案例的分类统计、提炼Codex使用的核心技巧和最佳实践、总结Prompt工程的精华要点、剖析常见错误及解决方案、展望AI编程的未来趋势,并为不同水平的读者规划学习路径。这不仅是一篇总结,更是一本Codex实战手册!

yueyeguzhuo的专栏 135

leetcode139. 单词拆分,动态规划

leetcode139. 单词拆分,动态规划

热爱C++和golang的学生 2099

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

测评1:给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。

题目描述: 给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 思路: 代码: ...

胡别致 . 1040

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

单词分割匹配字典

问题 给定一个字符串s和一个单词字典dict,确定s是否可以被分割成一个或多个字典单词的空格分隔序列。例如,给定s =“leetcode”, dict = [“leet”, “code”]。返回true,因为"leetcode"可以被分割为“leet code”。 解决方案 1. 朴素方法 这个问题可以通过使用一种简单的方法来解决。讨论总是可以从这开始。 public static boolean wordBreak1(String s, Set<String> dict) { ..

HUBA_yosa的博客 7067

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

力扣——单词拆分

通常情况下,Set 的 contains() 方法执行速度比 List 的 contains() 方法快。的时候,用Set储存字典中的单词查询更快。个字符可以被分割,假设分割的位置是。)是否可以被拼接,如果。

weixin_49332521的博客 1047

《leetCode-php》判断字符串是否可以由一个字符串数组中的元素拼接而来

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s ="leetcode", dict =["leet", "cod...

less_cold的博客 1564

【leetcode-字符串】单词拆分

题目: 给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。 示例 2: 输入: s = "applepenapple...

kangbin825的专栏 878

LeetCode 139. 单词拆分(DP)

1. 题目 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" ...

Michael是个半路程序员 1237

leetcode 动态规划(单词拆分)

139.单词拆分力扣题目链接(opens new window)给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。

mingchen_peng的博客 1857

Java实现 LeetCode 139 单词拆分

139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一...

5402

给定一个字符串s和一个单词dict的字典,确定s是否可以分割成一个或多个字典单词的空格分隔的序列。 s ="leetcode", dict =["leet", "code"].

本题源自LeetCode ------------------------------------------------------------------------------ 1 双重遍历字符串,判断子串是否在dic他中 2 用一个数组做标记,判断s[0-i]是否可划分为dict中的子串 bool wordBreak(string s, unordered_set &dic

i_am_bird的博客 4450
上一篇: 判断字符串是否能分割成字典中的单词(一)——Leetcode系列(十一)
下一篇: 深度复制链表——Leetcode系列(十三)
Hooting
博客等级 码龄17年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值