LeetCode 1216. 验证回文字符串 III(DP)
文章目录
- 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)相关推荐
- LeetCode 680. 验证回文字符串 Ⅱ
1. 题目 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True示例 2: 输入: "abca" ...
- LeetCode 680 验证回文字符串 Ⅱ
题目描述 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 题解 使用双指针进行遍历,不满足条件则进行删除,由于不知道要删除哪一个,则均进行判断. 代码 class Solutio ...
- leetcode10场双周赛-验证回文字符串 III (动态规划)
给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」. 所谓「K 回文」:如果可以通过从字符串中删去最多 k 个字符将其转换为回文,那么这个字符串就是一个「K 回文」. 示 ...
- Leetcode贪心 验证回文字符串
Given a string s, return true if the s can be palindrome after deleting at most one character from i ...
- 2022-1-13 Leetcode 680.验证回文字符串 II
class Solution {public:bool validPalindrome(string s) {int n = s.size();// for(int i = 0;i < n/2; ...
- leetcode系列--680.验证回文字符串 Ⅱ
leetcode系列–第680题.验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 输入: s = "abca" 输出: true 解释: ...
- 20190821:(leetcode习题)验证回文字符串
验证回文字符串 题目 大致思路 代码实现 题目 大致思路 首先明确什么是回文字符串: 正序和反序读,是一回事的句子,就是回文字符串 当然,你得把里面除了数字和字母的元素去掉,比如逗号啊,句号啊,之类的 ...
- LeetCode:验证回文串【125】
LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...
- 回文串问题(leetcode 125. 验证回文串 c#)
leetcode 125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...
最新文章
- rust(19)-进制
- Innodb隔离级别的实现原理
- Ubuntu安装中文语言包
- 信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )
- 物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?
- Java 百度OCR 身份证识别
- win7系统定时删除数据的批处理命令_简单的批量清除垃圾bat命令
- 微服务业务日志收集方案
- mui用ajax服务器交互,Mui --- app与服务器之间的交互原理、mui ajax使用
- Google Colab解压压缩包
- 2.1HTML网页之table标签B
- UHF超高频RFID通信协议实验步骤
- win10访问服务器共享文件夹密码不对,WIN10 Samba文件共享的设置方法,解决不能访问和密码错误的问题...
- Advanced PHP 高级PHP教程 Lynda课程中文字幕
- 21条最佳实践,全面保障 GitHub 使用安全
- 一文教你快速学习搭建属于自己的数据指标体系
- Android开发 :调用系统相机拍照保存照片并显示在当前界面
- 正点原子stm32F407学习笔记3——蜂鸣器实验
- 使用eNSP搭建一个局域网
- 用CDN的小伙伴注意了 小心阿里云注销你的备案
热门文章
- JDBC笔记01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties
- python中的装饰器和抽象类
- C++ virtual 析构函数
- hp g6服务器安装系统,HPProLiantDL180G6服务器安装图.PDF
- java中 怎么获取bean_java普通类如何得到spring中的bean类
- matlab教程蚁群算法,蚁群算法怎样用MATLAB仿真
- bzoj2435: [Noi2011]道路修建 树上dp
- centos安装Python2.7
- BP神经网络算法学习
- css bug 集2