5319. 删除回文子序列
这题很坑爹,子序列 != 子串,子序列不需要连续(他们说的,这是在考语文?),所以,先看整个字符串是不是回文,是return 1
,不是就看有多少种字符(题目说最多2
种,超过2
种呢?超过2种就不是了比如abcb
,c答案2
,abcbcc
,答案3
,abcbffgcdcf
,答案5
,额,要是超过2种难度就大了好多)就删多少次就行了
本题:
class Solution {public:bool is(string s,int left, int right){while(left <= right){if(s[left] != s[right]){return false;}left++;right--;}return true;}int removePalindromeSub(string s) {if(s == ""){return 0;}if(is(s, 0, s.size()-1)){return 1;}else{bool aflag = false, bflag = false;for(int i = 0; (!aflag || !bflag) && i < s.size(); i++){if(s[i] == 'a'){aflag = true;}else if(s[i] == 'b'){bflag = true;}}if(aflag && bflag){return 2;}else{return 1;}}}
};
下面这个是把序列当子串来做的
要是题目真的说,字符种类超过2种,应该可取这两种方法的答案最小值作为答案。(额,写完就发现不对,hhhhhhaaa,比如abcbffgcdcf
,答案应该是5
,下面这个标记被删除,改成真的删除应该就对)
class Solution {public:bool is(string s,int left, int right){while(left <= right){if(s[left] != s[right]){return false;}left++;right--;}return true;}int removePalindromeSub(string s) {if(s == ""){return 0;}int count = 0;vector<bool>visited(s.size(), false);//标记对应字符有没被删,true表示删了for(int i = 0; i < s.size(); i++){if(!visited[i]){for(int j = s.size()-1; j >= i; j--){if(!visited[j]){if(is(s, i, j)){count++;for(int ii = i; ii <= j; ii++){visited[ii] = true;}i = 0;break;}}}}}return count; }
};
总结:瞎写一通,hahahahhhhhh
5319. 删除回文子序列相关推荐
- LeetCode 1332. 删除回文子序列
1. 题目 给你一个字符串 s,它仅由字母 'a' 和 'b' 组成.每一次删除操作都可以从 s 中删除一个回文 子序列. 返回删除给定字符串中所有字符(字符串为空)的最小删除次数. 「子序列」定义: ...
- leetcode算法题--删除回文子序列
原题链接:https://leetcode-cn.com/problems/remove-palindromic-subsequences/ class Solution {public:int re ...
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...
- LeetCode 2002. 两个回文子序列长度的最大乘积(状态压缩+枚举状态子集+预处理)
文章目录 1. 题目 2. 解题 2.1 超时 2.2 预处理优化 1. 题目 给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 . 两个子序列在原字符串中如果 ...
- LeetCode 1930. 长度为 3 的不同回文子序列(计数)
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数. 即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次. 回文 是正着读 ...
- 【leetcode】【动态规划】最长回文子序列
[leetcode]最长回文子序列 题目 代码 leetcode题目地址 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些 ...
- 第 258 场周赛(5867. 反转单词前缀/ 5868. 可互换矩形的组数 / 5869. 两个回文子序列长度的最大乘积(状态压缩) / 5870. 每棵子树内缺失的最小基因值(小大合并))
第 258 场周赛 从这次开始还是把题目加上名字吧,要不然想找找不到题,哈哈 字节的周赛,还想冲个200来着,最后一题按二叉树写的,用例还能过,一提交,发现多叉的...来不及改了..400多名 586 ...
- 【Leetcode刷题Python】516. 最长回文子序列
1 题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列. 示例 1: 输入:s = &q ...
- 【Leetcode】516. 最长回文子序列
516. 最长回文子序列 题目描述 解题思路:动态规划 题目描述 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度.子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任 ...
最新文章
- (转)分布式文件存储FastDFS(五)FastDFS常用命令总结
- php filter 文件包含,php://filter(文件包含漏洞利用)及php://input
- python3.8安装pip-MAC本安装python3.8后,pip3命令无法更新问题
- 【下载!】实时计算正当时!助你轻松get Apache Flink 动向!
- CF613D Kingdom and its Cities
- python函数和模块有什么关键特性_Python学习----第一模块笔记(Python基础知识)...
- eclipse发布web不带项目名的url
- 为什么python打开pygame秒关闭后在运行_当我运行Python程序时,pygame窗口打开片刻,然后退出 - python...
- full outer join 与full join的区别_基础小白的SQL的JOIN语法解析
- 我一口气发现7个Safari 0day,苹果奖了7.5万美元
- Linux开发之libaio源码分析及应用
- Excel转PDF,Excel行数过多导致PDF折行、换行显示
- w10系统的服务器属性在哪,DNS设置在哪里、设置什么好?Win10电脑DNS设置指南
- -----已搬运-------Linux的/proc/self/学习 ++ CTF例题
- 习题11-7 奇数值结点链表 (20分)
- 我的嵌入式软件工程师秋招之路(文末送福利)
- pcm输出还是源码输出_观看高清必备 如何简单实现源码输出
- C++ RALL机制详解
- Word中如何连续使用格式刷
- 前端如何做好SEO优化
热门文章
- python资料-大牛分享python资料
- python基础代码大全-Python字典及基本操作(超级详细)
- python编程100个小程序-【Python精华】100个Python练手小程序
- 如何找到靠谱的微信小程序,公众号H5开发外包,定制开发公司?
- 语音识别kaldi该如何学习?
- python中堆排序_Python实现堆排序的方法详解
- 遍历矩阵每一行穷举_六十三---矩阵中的路径
- nmon安装为什么重启mysql_Centos7部署nmon监控工具
- Python 路径问题--No such file or directory
- 常用编码软件简单使用记录 2 : 非自主编码器