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

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.lryc.cn/news/2386761.html

相关文章:

  • 【C++进阶篇】初识哈希
  • Spring Boot——自动配置
  • 免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率
  • 使用 Vuex 实现用户注册与登录功能
  • 进程通信(管道,共享内存实现)
  • 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测
  • 快速上手SHELL脚本常用命令
  • 【无标题】前端如何实现分页?
  • 【自然语言处理与大模型】大模型Agent四大的组件
  • 小巧高效的目录索引生成软件
  • 云原生架构设计相关原则
  • android实现使用RecyclerView详细
  • 华为云Flexus+DeepSeek征文 | Flexus X实例助力 Dify-LLM 一键部署:性能跃升与成本优化的革新实践
  • 曼昆经济学原理第九版目录
  • 数据库blog7_MySql的下载与配置准备
  • YOLOv11助力地铁机场安检!!!一键识别刀具
  • RFID工业读写器的场景化应用选型指南
  • java中的线程安全的集合
  • 单片机如何快速实现查看实时数据
  • go实现钉钉三方登录
  • YOLOv1 详解:单阶段目标检测算法的里程碑
  • 5G 核心网切换机制全解析:XN、N2 与移动性注册对比
  • 物流配送优化实战:用遗传算法破解选址难题
  • Linux 个人用户设置账号密码环境变量,四种方式
  • Three.js搭建小米SU7三维汽车实战(5)su7登场
  • 关于 SSE(Server-Sent Events)过程的简要解剖
  • 格恩朗管段超声波流量计:流量测量先锋
  • 重构开发范式!飞算JavaAI革新Spring Cloud分布式系统开发
  • 图论 判断是否有环
  • (请关注)Oracle性能调优、优化总结调优参考直接应用,性能提升实用案例