当前位置: 首页 > news >正文

C++算法-动态规划2

第 4 题 字符串分割 (Word Break)

  • 难度: Medium
  • 备注:出自 leetcode
  • 题目描述
    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", "code"].

        Return true because"leetcode"can be segmented as"leet code".
        bool wordBreak (string s, unordered_set &dict)
        来源:牛客 - leetcode

题目描述
给定一个字符串和一个词典 dict,确定 s 是否可以根据词典中的词分成一个或多个单词。
比如,给定
s = "leetcode"
dict = ["leet", "code"]
返回 true,因为 "leetcode" 可以被分成 "leet code"

#include <bits/stdc++.h>
using namespace std;
bool wordBreak (string s, unordered_set<string> &dict) {//unordered_set &dict 哈希表 //边界判断 if(s.empty())return false;int len=s.size();//vector构造函数实现初始化 vector<bool> canBreak(len+1,false);//初始化 F(0)=truecanBreak[0]=true;for(int i=1;i<=len;i++){//转移方程 F(i)  j<i && F(j) && [j+1,i]for(int j=i-1;j>=0;j--){if(canBreak[j]&&dict.find(s.substr(j,i-j))!=dict.end()){canBreak[i]=true;break;}} }//返回结果 F(s.size()) return canBreak[len];
}
int main() {string s="leetcode";unordered_set<string> dict={"leet","code"};cout<<wordBreak(s,dict);return 0;
}

http://www.lqws.cn/news/187129.html

相关文章:

  • 数据库优化秘籍:解锁性能提升的 “潘多拉魔盒”
  • OpenLayers 分屏对比(地图联动)
  • 记录一个用了很久的git提交到github和gitee比较方便的方法
  • JDK8之后的新特性
  • React源码阅读-fiber核心构建原理
  • 【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
  • QPair 类说明
  • 水库大坝安全监测系统是什么?需要用到哪些设备?
  • 1.3 古典概型和几何概型
  • 2025.6.5学习日记 Nginx主目录文件 .conf介绍、热部署 定时日志切割
  • 实战设计模式之模板方法模式
  • Go 中的 Map 与字符处理指南
  • 如何使用Webhook触发器,在 ONLYOFFICE 协作空间构建智能工作流
  • C++中的概念(Concepts)
  • 自然语言处理的发展
  • 数字孪生恰似企业的“智能军师”,精准助力决策
  • 【python基础知识】 *args, **kwargs介绍
  • 一篇文章实现Android图片拼接并保存至相册
  • 深入了解linux系统—— 进程池
  • Redis哨兵模式
  • CSS 性能优化
  • 微信小程序动态效果实战指南:从悬浮云朵到丝滑列表加载
  • 密码学基础——SM4算法
  • spring重试机制
  • 一种全新的非对称加密算法
  • 从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
  • 金融系统渗透测试
  • 交易所系统攻坚:高并发撮合引擎与合规化金融架构设计
  • pe文件结构(TLS)
  • 字节推出统一多模态模型 BAGEL,GPT-4o 级的图像生成能力直接开源了!