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

Leetcode 3472. Longest Palindromic Subsequence After at Most K Operations

  • Leetcode 3472. Longest Palindromic Subsequence After at Most K Operations
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3472. Longest Palindromic Subsequence After at Most K Operations

1. 解题思路

这一题我的思路是类似LCS那种动态规划。

首先,我们定义窗口的两侧分别在最左和最右,然后不断考察是否要通过变换使得两个位置上的字符对齐,还是直接放弃使用该字符。

迭代遍历所有的情况我们即可得到我们最终的答案。

2. 代码实现

给出python代码实现如下:

class Solution:
    def longestPalindromicSubsequence(self, s: str, k: int) -> int:
        n = len(s)
        
        @lru_cache(None)
        def dp(l, r, k):
            if l == r:
                return 1
            elif l > r:
                return 0
            elif s[l] == s[r]:
                return 2 + dp(l+1, r-1, k)
            src, tgt = sorted([ord(s[l]), ord(s[r])])
            change = min(tgt-src, src+26-tgt)
            if k < change:
                return max(dp(l+1, r, k), dp(l, r-1, k))
            else:
                return max(dp(l+1, r, k), dp(l, r-1, k), 2 + dp(l+1, r-1, k-change))
            
        return dp(0, n-1, k)

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

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

相关文章:

  • XGBoost常见面试题(五)——模型对比
  • 如何在rust中解析 windows 的 lnk文件(快捷方式)
  • 23、什么是菱形继承【中高频】
  • el-tree(append与getNode与过滤)、深拷贝deepClone、监听addEventListener、
  • Aruco 库详解:计算机视觉中的高效标记检测工具
  • C++ 接口(抽象类)
  • 深入理解 CAS 与 ABA 问题
  • 基于Docker去创建MySQL的主从架构
  • Xss漏洞问题
  • 特定领域软件架构DSSA
  • 五、数组维度
  • 批量合并 Word 文档,支持合并成一个 Word,也支持按文件夹合并
  • 网络安全技术整体架构 一个中心三重防护
  • 进程间的通信1
  • Jetson Orin 安装 onnxruntime
  • Web3中的AI:一种去中心化智能的完整指南
  • 奥运会运动员年龄规定·棒球1号位
  • 【C++】5.6 try语句和异常处理
  • C# 命名空间(Namespace)详解
  • 稀疏注意力:打破Transformer计算瓶颈,实现高效长序列建模
  • ES02 - ES语句
  • TMS320F28P550SJ9学习笔记7:结构体寄存器方式配置SCI通信收发_SCI通信收发测试
  • C/C++ 实现由用户通过键盘输入自然数并判断其是不是素数(带清空缓冲区等考虑)
  • 【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型
  • 全星FMEA软件:汽车电子行业研发管理高效之选
  • VPS加装前置代理全解析
  • uni_app实现下拉刷新
  • K8S学习之基础十七:k8s的蓝绿部署
  • AUTOSAR ETH模块(3)——接口功能分析
  • 利用EasyCVR平台打造化工园区视频+AI智能化监控管理系统