判断字符串是否能分割成字典中的单词(二)——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

虚幻UE 增强输入-触发器

输入触发器(UInputTrigger): 使用经过修饰器修改的输入值,或者使用其他输入动作的输出值,来确定是否激活输入动作。

UE成长之路,欢迎大家的关注! 5464

智警杯1.4---excel可视化

知识点

lulu001128的博客 949

【动态规划】拆分词句

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

weixin_46103589的博客 708

AIOps智能运维:从数据治理到故障自愈的实践指南

AIOps(智能运维)通过融合人工智能与运维管理,构建了感知-决策-执行的闭环体系。其核心技术包括多维度数据采集、机器学习算法和自动化执行,显著提升了告警治理、故障定位和容量预测的效率。在数据层,全量性、实时性的数据采集是基础,而算法层的异常检测和根因分析则依赖统计方法、孤立森林和LSTM等模型。AIOps尤其适用于处理告警风暴和复杂系统故障,如在电商大促中通过K-Means聚类减少92%的告警量。随着云原生和边缘计算的普及,AIOps正逐步实现与Service Mesh、Serverless等技术的深度集

weixin_30175731的博客 288

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

Android:Google三方库之Adjust集成详细步骤

Android为APP添加google adjust功能

学习就是我的个性 4476

2021.11.23 Covins 多机器人单目协同建图 跑Euroc数据集 更新

近日,一直在调试如何使用Covins跑通数据集,因为是初学者,所以很多bug出来的时候原理都不懂,只能复制——百度——尝试解决的过程。 现分享一下近日的结果以及与Covins作者帮助解答的一些问题。 使用代码行跑依次跑Euroc多数据集 这里的意思是使用作者提供的covins_examples文件夹中的euroc_examples_mh123_vigba.sh文件,这个文件是将三个Euroc数据集依次运行,跑完第一个数据集,第二个数据集运行的时候在第一个数据集生成地图的基础上继续绘制,由于我只下载了两个数据

qq_42614598的博客 2474

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

RK3588与银河麒麟V10 SP1 2403深度适配:国产化硬件与操作系统的完美融合

本文深入探讨了RK3588处理器与银河麒麟V10 SP1 2403操作系统的深度适配,展示了国产化硬件与操作系统的完美融合。通过性能验证和实际应用测试,证明了这套组合在多媒体处理、AI推理和日常办公中的卓越表现,实现了完全自主可控的计算平台。

weixin_29194255的博客 249

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

《谷歌数据分析方法》脑图笔记

目录壹、脑图笔记贰、《谷歌数据分析方法》脑图文稿[^1]一、 反思数据分析二、选择数据分析工具的最佳策略第一步:选择数据分析工具前要回答的3个关键问题第二步:选择数据分析工具前要问供应商的10个问题第三步:如何有效地试用数据分析工具第四步:确定合作前的协议,检查供应商的服务条款三、点击流分析的精彩世界:指标8个关键网站指标数据分析指标揭秘关键网站指标的战略性策略四、成功的关键:衡量绩效关注“少数关键指标”衡量非电子商务网站的成功衡量B2B网站五、调研和测试永不过时的3个最佳调研问题选择线上调研供应商的8个建

积跬步,慕至千里的博客 2926

一文读懂AI协同办公领域发展和趋势

协同办公,又称OA,是指企业内部或外部各类人员之间利用信息技术来进行协作工作的一种形式。这种协作工作既可以由直接员工进行,也可以来自外部的咨询机构、合作伙伴或联营企业。协同办公的优势在于可以对资源进行有效管理和配置,各部门之间可以建立良好的协作关系,跨部门更好地实现资源共享。

女王の专属领地 2359

leetcode139. 单词拆分,动态规划

leetcode139. 单词拆分,动态规划

热爱C++和golang的学生 2099

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

胡别致 . 1040

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

单词分割匹配字典

问题 给定一个字符串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

力扣——单词拆分

通常情况下,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、付费专栏及课程。

余额充值