英语单词记忆法拆分2000个_usually拆分记忆

英语单词记忆法拆分2000个_usually拆分记忆给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]输出:[ “cats and dog”, “cat sand dog”]示例 2:输入:s = “

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

说明:

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

示例 1:

输入:
s = "catsanddog"
wordDict = ["cat", "cats", "and", "sand", "dog"]
输出:
[
  "cats and dog",
  "cat sand dog"
]
示例 2:

输入:
s = "pineapplepenapple"
wordDict = ["apple", "pen", "applepen", "pine", "pineapple"]
输出:
[
  "pine apple pen apple",
  "pineapple pen apple",
  "pine applepen apple"
]
解释: 注意你可以重复使用字典中的单词。
示例 3:

输入:
s = "catsandog"
wordDict = ["cats", "dog", "sand", "and", "cat"]
输出:
[]

题解
记忆化搜索+hash

class Solution { 
   
public:
    string t;
    unordered_map<string,bool>mm;
    int Min,Max;
    vector<string> rem[10000];
    int max(int a,int b){ 
   
        return a > b ? a : b;
    }
    int min(int a,int b){ 
   
        return a < b ? a : b;
    }
    void dfs(int u,string &s){ 
   
        if(rem[u].size() != 0)return;
        if(u == s.size()){ 
   
            rem[u].push_back("");
            return;
        }
        for(int len = Min;len <= Max;len ++){ 
   
            if(s.size() - u >= len && mm.find(s.substr(u,len)) != mm.end()){ 
   
                dfs(u + len,s);
                for(auto &line : rem[u + len]){ 
   
                    rem[u].push_back(s.substr(u,len) + " " + line);
                }
            }
        }
    }
    vector<string> wordBreak(string s, vector<string>& wordDict) { 
   
        t = "";
        Min = 0x3f3f3f3f,Max = 0;
        for(int i = 0;i < wordDict.size();i ++){ 
   
            Min = min(wordDict[i].size(),Min);
            Max = max(wordDict[i].size(),Max);
        }
        for(auto &s : wordDict){ 
   
            mm[s] = true;
        }
        dfs(0,s);
        for(auto & s : rem[0]){ 
   
            s.erase(s.size() - 1,1);
        }
        return rem[0];
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168641.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 上午11:46
下一篇 2022年8月9日 上午11:46


相关推荐

  • Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子[通俗易懂]

    Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子[通俗易懂]1、Zigbee协议栈简介  协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议,进而实现无线数据收发。  如图1所示:Zigbee协议分为两部分,IEEE802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;Zigbee联盟定义了NWK(网络层)、A…

    2022年5月28日
    44
  • 如何写 Cover Letter 论文投稿「建议收藏」

    如何写 Cover Letter 论文投稿「建议收藏」论文投稿时一般要求附带一篇“CoverLetter”,好的“CoverLetter”不仅可以使文章锦上添花,更有可能直接决定论文是否被录用。本人切身体会,以已发表论文为例,现将其写法经验归纳如下:Dear Editor,We would like to submit the enclosed manuscript entitled "论文题目", which we wish to be con…

    2022年6月4日
    35
  • 科大讯飞SR502星火版25年还值得入手吗?

    科大讯飞SR502星火版25年还值得入手吗?

    2026年3月14日
    2
  • 考勤管理系统需求分析说明书

    考勤管理系统需求分析说明书目录一 引言 1 1 编写目的 1 2 背景 1 3 编写对象 1 4 参考资料二 任务概述 2 1 任务目标 2 2 运行环境 2 3 条件限制三 功能需求 3 1 功能描述 3 2 静态数据 3 3 动态数据 3 4 数据字典四 需求规定 4 1 运行需求 4 2 非性能需求附录任务分工一 引言 1 1 编写目的通过该系统考核学生

    2025年9月21日
    6
  • 四、全卷积网络FCN详细讲解(超级详细哦)[通俗易懂]

    四、全卷积网络FCN详细讲解(超级详细哦)[通俗易懂]四、FCN全卷积网络+upsampling上采样+opencv图像金字塔(超级详细哦)1、全卷积网络(FCN)的简单介绍1.1、CNN与FCN的比较1、上采样理论2、OpenCV图像金字塔1、全卷积网络(FCN)的简单介绍1.1、CNN与FCN的比较在传统的cnn网络中,在在最后的卷积层之后会接上若干个全连接层,将卷积层产生的特征图(featuremap)映射成为一个固定长度的特征向量。一…

    2022年6月18日
    31
  • hadoop Secondary NameNode作用

    hadoop Secondary NameNode作用

    2021年9月9日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号