leetcode-139. 单词拆分(记忆化搜索|动态规划)

leetcode-139. 单词拆分(记忆化搜索|动态规划)给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordDict = [

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

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

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

说明:

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

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

输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
     注意你可以重复使用字典中的单词。
示例 3:

输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
  1. 记忆化搜索

class Solution { 
   
public:
    set<string>m;
    bool wordBreak(string s, vector<string>& wordDict) { 
   
        if(s == "")return true;
        if(m.find(s) != m.end())return false;
        for(auto &a : wordDict){ 
   
            int len = a.size();
            if(s.size() >= len){ 
   
                string t = s.substr(0,len);
                if(t == a && wordBreak(s.substr(len),wordDict))return true;
            }
        }
        m.insert(s);
        return false;
    }
};
  1. 动态规划
const int N = 1e5 + 10;

class Solution { 
   
public:
    bool wordBreak(string s, vector<string>& wordDict) { 
   
        int n = s.size();
        bool f[N] = { 
   false};
        f[0] = true;
        for(int i = 1;i <= n;i ++){ 
   
            for(auto &w : wordDict){ 
   
                int l = i - w.size();
                int len = w.size();
                if(l >= 0 && w == s.substr(l,len)){ 
   
                    f[i] = f[i] | f[l];
                }
            }
        }
        return f[n];
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168555.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android declare-styleable 和style,Android 关于declare-styleable属性的写法….

    android declare-styleable 和style,Android 关于declare-styleable属性的写法….我想问自定义View的时候,以下这段代码,为何要写两次一样的名称呢?我看了一些资料,说写在declare-styleable系统会自动生成数组…..我不太明白这实际应用是什么?如果说自动帮你生成了数组,方便使用,那写在外面的三个又有什么作用?能从实际应用中讲一讲吗?<?xmlversion=”1.0″encoding=”utf-8″?><resources><at…

  • threadlocal底层实现_ioc的底层实现原理

    threadlocal底层实现_ioc的底层实现原理ThreadLocal作用:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。package com.mupack;public class App{ private String content; public void setContent(String content) { this.content = content; } public Stri

  • 基于人脸识别的考勤系统:Python3 + Qt5 + OpenCV3 + FaceNet + MySQL

    基于人脸识别的考勤系统:Python3 + Qt5 + OpenCV3 + FaceNet + MySQL本项目使用Python3.8编写,QtDesigner(QT5)设计主界面,PyQt5库编写控件的功能,使用开源FaceNet人脸识别算法进行人脸识别,使用眨眼检测来实现活体识别,使用OpenCV3实现实时人脸识别。同时,将班级学生信息,各班级学生人数、考勤信息录入到MySQL数据库中,方便集中统一化管理。因为本项目仅由我一个人开发,能力精力有限,实现了预期的绝大多数功能,但是活体检测功能还存在bug,如果小伙伴对本项目中有不懂的地方或者发现问题,欢迎提出。

  • 2021idea激活码【2021免费激活】

    (2021idea激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法

    【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法一、问题描述今天下午使用ssh连接其他服务器进行scp操作的时候,提示失败,如下所示:[root@localhostbackups]#scproot@172.xxx.xxx.xxx:/data/gitlabData/backups/1539717714_2018_10_17_9.4.3_gitlab_backup.tar.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@……

    2022年10月21日
  • 51单片机 八路抢答器+Proteus仿真[通俗易懂]

    51单片机 八路抢答器+Proteus仿真[通俗易懂]51单片机八路抢答器+Proteus仿真Proteus仿真实例代码1直观,任意看懂#include<reg52.h>unsignedcharcodeled[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管断码//unsignedcharcodeTRY[8]={0xfe,0xfd,0Xfb,0xf7,0xef,0xdf,0

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

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