文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」。

所谓「K 回文」:如果可以通过从字符串中删去最多 k 个字符将其转换为回文,那么这个字符串就是一个「K 回文」。

示例:
输入:s = "abcdeca", k = 2
输出:true
解释:删除字符 “b” 和 “e”。提示:
1 <= s.length <= 1000
s 中只含有小写英文字母
1 <= k <= s.length

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 类似题目:LeetCode 516. 最长回文子序列(动态规划)

求最长回文子序长度,跟上题一样的本质

class Solution {public:bool isValidPalindrome(string s, int k) {int i, j, n = s.size();vector<vector<int>> dp(n,vector<int>(n,0));for(i = 0; i < n; ++i)dp[i][i] = 1;for(j = 0; j < n; ++j){for(i = j-1; i >= 0; --i)//区间从小往大,所以逆序{if(s[i] == s[j])dp[i][j] = dp[i+1][j-1]+2;elsedp[i][j] = max(dp[i+1][j], dp[i][j-1]);}}return n-dp[0][n-1] <= k;}
};

或者

class Solution {public:bool isValidPalindrome(string s, int k) {int i, j, n = s.size();vector<vector<int>> dp(n,vector<int>(n,0));for(i = 1; i < n; ++i)dp[i-1][i] = s[i-1]==s[i] ? 0 : 1;//两个字符不一样,需要删除1个才是回文for(j = 0; j < n; ++j){for(i = j-1; i >= 0; --i)//区间从小往大,所以逆序{if(s[i] == s[j])dp[i][j] = dp[i+1][j-1];elsedp[i][j] = 1 + min(dp[i+1][j], dp[i][j-1]);}}return dp[0][n-1] <= k;}
};

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1216. 验证回文字符串 III(DP)相关推荐

  1. LeetCode 680. 验证回文字符串 Ⅱ

    1. 题目 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True示例 2: 输入: "abca" ...

  2. LeetCode 680 验证回文字符串 Ⅱ

    题目描述 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 题解 使用双指针进行遍历,不满足条件则进行删除,由于不知道要删除哪一个,则均进行判断. 代码 class Solutio ...

  3. leetcode10场双周赛-验证回文字符串 III (动态规划)

    给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」. 所谓「K 回文」:如果可以通过从字符串中删去最多 k 个字符将其转换为回文,那么这个字符串就是一个「K 回文」. 示 ...

  4. Leetcode贪心 验证回文字符串

    Given a string s, return true if the s can be palindrome after deleting at most one character from i ...

  5. 2022-1-13 Leetcode 680.验证回文字符串 II

    class Solution {public:bool validPalindrome(string s) {int n = s.size();// for(int i = 0;i < n/2; ...

  6. leetcode系列--680.验证回文字符串 Ⅱ

    leetcode系列–第680题.验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 输入: s = "abca" 输出: true 解释: ...

  7. 20190821:(leetcode习题)验证回文字符串

    验证回文字符串 题目 大致思路 代码实现 题目 大致思路 首先明确什么是回文字符串: 正序和反序读,是一回事的句子,就是回文字符串 当然,你得把里面除了数字和字母的元素去掉,比如逗号啊,句号啊,之类的 ...

  8. LeetCode:验证回文串【125】

    LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...

  9. 回文串问题(leetcode 125. 验证回文串 c#)

    leetcode 125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...

最新文章

  1. rust(19)-进制
  2. Innodb隔离级别的实现原理
  3. Ubuntu安装中文语言包
  4. 信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )
  5. 物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?
  6. Java 百度OCR 身份证识别
  7. win7系统定时删除数据的批处理命令_简单的批量清除垃圾bat命令
  8. 微服务业务日志收集方案
  9. mui用ajax服务器交互,Mui --- app与服务器之间的交互原理、mui ajax使用
  10. Google Colab解压压缩包
  11. 2.1HTML网页之table标签B
  12. UHF超高频RFID通信协议实验步骤
  13. win10访问服务器共享文件夹密码不对,WIN10 Samba文件共享的设置方法,解决不能访问和密码错误的问题...
  14. Advanced PHP 高级PHP教程 Lynda课程中文字幕
  15. 21条最佳实践,全面保障 GitHub 使用安全
  16. 一文教你快速学习搭建属于自己的数据指标体系
  17. Android开发 :调用系统相机拍照保存照片并显示在当前界面
  18. 正点原子stm32F407学习笔记3——蜂鸣器实验
  19. 使用eNSP搭建一个局域网
  20. 用CDN的小伙伴注意了 小心阿里云注销你的备案

热门文章

  1. JDBC笔记01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties
  2. python中的装饰器和抽象类
  3. C++ virtual 析构函数
  4. hp g6服务器安装系统,HPProLiantDL180G6服务器安装图.PDF
  5. java中 怎么获取bean_java普通类如何得到spring中的bean类
  6. matlab教程蚁群算法,蚁群算法怎样用MATLAB仿真
  7. bzoj2435: [Noi2011]道路修建 树上dp
  8. centos安装Python2.7
  9. BP神经网络算法学习
  10. css bug 集2