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

力扣 hot100 Day76

139. 单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true

注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());int n = s.size();vector<bool> dp(n + 1, false);dp[0] = true;int maxLen = 0;for (const string& word : wordDict) {maxLen = max(maxLen, (int)word.length());}for (int i = 1; i <= n; ++i) {int start = max(0, i - maxLen);for (int j = start; j < i; ++j) {if (dp[j] && wordSet.count(s.substr(j, i - j))) {dp[i] = true;break;}}}return dp[n];}
};

状态转换核心逻辑是,如果dp[j]为true,并且(j,i-j)这一段在字典中,那么dp[i]也为真

定义了一个start优化效率,逻辑是,如果此时i大于最大字符串长度,那就没必要从0开始遍历

http://www.dtcms.com/a/336113.html

相关文章:

  • WPFC#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
  • 代码随想录刷题——字符串篇(四)
  • 深度学习之优化器
  • 自然语言处理NLP---预训练模型与 BERT
  • Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
  • Git 入门指南:核心概念与常用命令全解析
  • 「数据获取」《中国文化文物与旅游统计年鉴》(1996-2024)(获取方式看绑定的资源)
  • 链式前向星、vector存图
  • Kafka_Broker_副本基本信息
  • 【FreeRTOS】信号量与互斥量
  • LeetCode热题100--104. 二叉树的最大深度--简单
  • 给纯小白的Python操作 PDF 笔记
  • 【牛客刷题】BM63 跳台阶:三种解法深度解析(递归/DP动态规划/记忆化搜索)
  • Baumer高防护相机如何通过YoloV8深度学习模型实现工作设备状态的检测识别(C#代码UI界面版)
  • Shell脚本-流程控制语句基本语法结构
  • Mutually aided uncertainty
  • 5G NR PDCCH之速率匹配
  • 【数据结构】堆和二叉树详解——上
  • 神经网络中的梯度概念
  • 【杂谈】-以质代量:谷歌主动学习范式重构AI训练逻辑
  • 把 AI 变成“气味翻译官”——基于微型电子鼻的低功耗 VOC 实时识别系统
  • 13、系统设计
  • 何为“低空经济”?
  • DeepSider:免费使用顶级大模型、全方位AI赋能的浏览器插件
  • gitee 流水线+docker-compose部署 nodejs服务+mysql+redis
  • Effective C++ 条款46:需要类型转换时请为模板定义非成员函数
  • tauri2项目WindowConfig配置中titleBarStyle样式区别,仅macOS有效
  • 如何在Windows系统中更改用户名(中文转英文全流程)
  • Deepseek一体机
  • 视觉图像界面设计【QT-creator高级编程 - 01】图像显如何保证跟随主窗口变化,且保留必要的设定窗口