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

Leetcode 3316. Find Maximum Removals From Source String

  • Leetcode 3316. Find Maximum Removals From Source String
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3316. Find Maximum Removals From Source String

1. 解题思路

这一题思路上的话就是一个动态规划的题目,我们仿照lcs,考察每一个位置是否可以drop即可。

而关于lcs算法,网上有很多介绍文章,这里就不过多赘述了。

2. 代码实现

给出python代码实现如下:

class Solution:def maxRemovals(self, source: str, pattern: str, targetIndices: List[int]) -> int:n, m = len(source), len(pattern)targets = set(targetIndices)@lru_cache(None)def dp(i, j):if j >= m:return len([idx for idx in range(i, n) if idx in targets])if i >= n:return -math.infif i in targets:if source[i] == pattern[j]:return max(dp(i+1, j+1), 1 + dp(i+1, j))else:return 1 + dp(i+1, j)else:if source[i] == pattern[j]:return dp(i+1, j+1)else:return dp(i+1, j)remove = dp(0, 0)return remove if remove != -math.inf else 0

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

http://www.lryc.cn/news/462288.html

相关文章:

  • jeecg3版本的vue,离线启动
  • C++的内存管理
  • YZ系列工具之YZ09:VBA_Excel之读心术
  • 嵌入式系统---看门狗
  • 从MySQL5.7迁移到8.0时,有哪些重要的参数调整或新参数需要注意?
  • 完整发布/上传uniapp Ios应用到App Store流程
  • CodeActAgent :Executable Code Actions Elicit Better LLM Agents解读
  • 中小型医院网站开发:Spring Boot入门
  • Java读取PDF后做知识库问答_SpringAI实现
  • 打开exe程序显示没有适当的访问权限
  • Python异步编程:使用`create_task`并发执行协程
  • 从零开始搭建你的DolphinScheduler分布式任务调度平台实战指南
  • 第五课:Python学习之if语句
  • 群晖前面加了雷池社区版,安装失败,然后无法识别出用户真实访问IP
  • 【秋招笔试】10.13拼多多(已改编)秋招-三语言题解
  • 50个JAVA常见代码大全:学完这篇从Java小白到架构师(附带讲解)
  • Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.0 SP1升级到SP3操作方法(x64)
  • Centos7安装Git及配置Github
  • MobileNet v3(相比于MobileNet v2)
  • 短视频剪辑入门指南:这四大软件值得推荐!
  • 网络编程(22)——通过beast库快速实现websocket服务器
  • 从视频截取每一帧作为图像
  • 终端 数据表格
  • 2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数
  • 数字后端实现静态时序分析STA Timing Signoff之min period violation
  • phpstorm+phpstudy 配置xdebug(无需开启浏览器扩展)
  • AI赋能安全运营 | 赛宁网安深度参与四川省网络安全沙龙
  • R语言中,.RData 和 .rds 的区别
  • python实现录屏功能
  • 酷克数据出席2024金融业数据库技术大会