当前位置: 首页 > 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。

相关文章:

  • 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计算瓶颈,实现高效长序列建模
  • wordpress font google/seo的工作内容
  • 做网站需要购买地域名吗/怎样做好网络营销推广
  • 网站注册系统用什么做/如何提高网站排名
  • 自适应网站怎么做m站/无锡网站seo顾问
  • 前端做网站需要的技能/网站怎么建立
  • 做短租类型的网站/百度一下百度主页官网