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

Leetcode 3557. Find Maximum Number of Non Intersecting Substrings

  • Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3557. Find Maximum Number of Non Intersecting Substrings

1. 解题思路

这一题就是一个比较直接的动态规划的题目,我们只需要考察每一个位是否可以作为一个子串的开头,如果可以那么比较其被取用以及不被取用时的较大值将其进行返回,如果不可以,那么直接返回其不被取用时的值即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maxSubstrings(self, word: str) -> int:n = len(word)locs = defaultdict(list)for i, ch in enumerate(word):locs[ch].append(i)@lru_cache(None)def dp(idx):if idx >= n:return 0ch = word[idx]i = bisect.bisect_left(locs[ch], idx+3)if i >= len(locs[ch]):return dp(idx+1)else:return max(dp(idx+1), 1 + dp(locs[ch][i] + 1))return dp(0)

提交代码评测得到:耗时1713ms,占用内存420.2MB。

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

相关文章:

  • 如何通过PHPMyadmin对MYSQL数据库进行管理?
  • MQTT-Vue整合
  • 精益数据分析(87/126):市场-产品契合度重构——现有产品寻找新市场的实战指南
  • R 语言科研绘图 --- 热力图-汇总
  • 《软件工程》第 2 章 -UML 与 RUP 统一过程
  • 第11章1 扩展 MySQL
  • Linux连接服务器全攻略:从基础到进阶
  • Hadoop架构与核心模块解析
  • hadoop纠删码基本原理
  • Vue3监听对象数组属性变化方法
  • Qwen-Agent的使用示例-天气查询
  • 记录 | Android TextView 中的滚动方向
  • 常见小问题(Open Folder as PyCharm Project)
  • 重构开发范式!飞算JavaAI革新Spring Cloud分布式系统开发
  • OpenGL Chan视频学习-7 How I Deal with Shaders in OpenGL
  • 打造现代 Web 服务的终极选择:轻量级 Rust HTTP 框架
  • MyBatis 核心组件剖析:架构、协作与源码解读
  • NLP学习路线图(八):常见算法-线性回归、逻辑回归、决策树
  • AI时代新词-Transformer架构:开启AI新时代的关键技术
  • rpm安装jenkins-2.452
  • 深度解析 vm.max_map_count:用途、原理与调优建议
  • 如何用ChatGPT提升学术长文质量
  • VR 技术在农业领域或许是一抹新曙光​
  • VR 展厅开启一场穿越时空的邂逅​
  • Java 访问者模式深度重构:从静态类型到动态行为的响应式设计实践
  • 力扣HOT100之回溯:22. 括号生成
  • 基于cornerstone3D的dicom影像浏览器 第二十三章 mpr预设窗值与vr preset
  • 仓储物流场景下国标GB28181视频平台EasyGBS视频实时监控系统应用解决方案
  • 互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案-2
  • [BUG]Debian/Linux操作系统中 安装 curl等软件显示无候选安装(E: 软件包 curl 没有可安装候选)