leetcode 1332. Remove Palindromic Subsequences 详解 python3

LeetCode --- 1332. Remove Palindromic Subsequences 解题报告 【代码】LeetCode --- 1332. Remove Palindromic Subsequences 解题报告。 阅读详情

一.问题描述

Given a string s consisting only of letters 'a' and 'b'. In a single step you can remove one palindromic subsequence from s.

Return the minimum number of steps to make the given string empty.

A string is a subsequence of a given string, if it is generated by deleting some characters of a given string without changing its order.

A string is called palindrome if is one that reads the same backward as well as forward.

 

Example 1:

Input: s = "ababa"
Output: 1
Explanation: String is already palindrome

Example 2:

Input: s = "abb"
Output: 2
Explanation: "abb" -> "bb" -> "". 
Remove palindromic subsequence "a" then "bb".

Example 3:

Input: s = "baabb"
Output: 2
Explanation: "baabb" -> "b" -> "". 
Remove palindromic subsequence "baab" then "b".

Example 4:

Input: s = ""
Output: 0

 

Constraints:

  • 0 <= s.length <= 1000
  • s only consists of letters 'a' and 'b'

二.解题思路

新鲜出炉的一道题,我是想着把新出的几道easy的题写了然后数medium的,结果一下子又出两道新题,出题速度也太快了吧。

这题审题最重要!

首先区分两个概念:

1.子数组(subarray):需要在原数组中索引连续。

2.子序列(subsquence):不需要在原数组索引连续。

刚拿到题目的时候没注意到是子序列以为是子数组,一看,wc还挺难的。

再想一想,真可是easy难度的题,然后发现是子序列。

然后s只包含a和b那就很简单了。

答案只可能是0,1,2.

0:s为空,返回0.

1:s本身就是回文串。

2.其他情况

为啥说2是最大的操作次数?

第一次把a全删掉,第二次把b全删掉。。。所以最多就2次。所以说还是要注意,是子序列!!!

还好这道题只包含a和b,如果包含>3的字符数,那就比较麻烦了。

时间复杂度:O(N)。

更多leetcode算法题解法: 专栏 leetcode算法从零到结束  或者 leetcode 解题目录 Python3 一步一步持续更新~

三.源码

class Solution:
    def removePalindromeSub(self, s: str) -> int:
        if not s:return 0
        return 1 if s==s[::-1] else 2

 

论文笔记:基于对比学习的半监督分类学习方法 论文阅读笔记_CCSSL 阅读详情

相关推荐

半导体AMHS系统振动控制技术演进:从0.5G到超低振动的工艺革命

在半导体制造进入埃米级时代后,AMHS的振动控制能力将成为区分厂商技术等级的标尺。国内企业通过“弹性机械设计-混合主动控制-智能调度”的三重创新,正逐步突破0.2G阈值,支撑12英寸晶圆厂向3nm/2nm制程升级。未来,振动抑制不再仅是物流系统的性能参数,而是与光刻、刻蚀等核心工艺深度耦合的基础能力,这将重塑半导体设备产业的竞争格局。

m0_60674045的博客 1583

1332. 删除回文子序列

1332. 删除回文子序列https://leetcode.cn/problems/remove-palindromic-subsequences/难度简单172给你一个字符串 ,它仅由字母 和 组成。每一次删除操作都可以从 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文

肥不溜秋大梅子 344

从TCGA官网获取新版count数据并精准转换为TPM的实战指南

本文详细介绍了从TCGA官网获取新版count数据并精准转换为TPM的实战指南。通过TCGAbiolinks工具下载原始count数据,结合GENCODE v36注释文件计算基因有效长度,最终实现count到TPM的标准化转换,确保数据完整性和分析可靠性。文章包含完整代码示例和常见问题解决方案,特别适合生物信息学研究人员参考。

weixin_27310417的博客 283

Leetcode 1332:删除回文子序列(超详细的解法!!!)

给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: 输入:s =...

coordinate的博客 1802

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

BIOS/UEFI完全指南:从开机自检到超频魔改的底层硬件控制

计算机启动过程始于固件层,其核心是负责硬件初始化与引导的系统软件。传统BIOS基于16位实模式,寻址能力有限,而现代UEFI采用保护模式,支持图形界面与安全启动,实现了从概念到架构的革新。这一演进带来了显著的技术价值:更快的启动速度、更强的安全性以及对大容量存储设备的原生支持。在工程实践中,无论是解决“虚拟化技术禁用”问题、调整内存XMP配置以提升性能,还是为老主板“魔改”添加NVMe支持,都需要深入理解并操作BIOS/UEFI设置。掌握这些底层交互能力,是进行硬件调试、系统优化与故障排查的关键,也是连接抽

weixin_34236869的博客 456

1332. Remove Palindromic Subsequences

Source: https://leetcode.com/contest/weekly-contest-173/problems/remove-palindromic-subsequences/ Given a string s consisting only of letters ‘a’ and ‘b’. In a single step you can remove one palindrom...

y625658683的博客 445

【人工智能 Open AI】程序员怎样提升研发效率?从技术、业务、项目管理等等多个方面来阐述。

程序员要想提升研发效率,需要从技术、业务、项目管理等多方面着手,多靠工具配合实践实现,从而提升研发效率。

AI天才研究院 5526

leetcode 1332 删除回文子序列

给你一个字符串s,它仅由字母'a' 和 'b'组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: 输入:s = "ababa" 输出:1 解释:字符串本身就是回文序列,只需要删除一次。 示例 2: 输入:s...

烧烤团子 465

python如何给声音增加回声效果

创建任何声音对象的回声效果。使用sndarray和numpy来创建原始声音的偏移和衰减副本。目前它只是使用硬编码的值来设置回声的数量和延迟。你可以根据自己的需要轻松地重新创建。这段注释说明了make_echo函数的用途和实现方式,即通过pygame的sndarray模块和numpy库来处理声音数据,生成具有回声效果的声音。函数中使用了固定的回声数量和延迟时间,但这些值可以根据用户的需求进行调整。

zhangzhechun的专栏 976

详解AUTOSAR:什么是AUTOSAR?(理论篇—1)

AUTOSAR是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,是对汽车技术开发一百多年来的经验总结。

不脱发的程序猿 1万+

1332.remove-palindromic-subsequences

1332. 删除回文子序列 题目描述 字符串s仅由a和b构成,每一次删除操作可以从s中删除一个回文子串,问删空需要删除几次? 官方思路 这是一道脑筋急转弯题目。。。 由于只有 a 和 b 两个字符。其实最多的消除次数就是 2。因为我们无论如何都可以先消除全部的 1 再消除全部的 2(先消除 2 也一样),这样只需要两次即可完成。 代码 class Solution { public: int removePalindromeSub(string s) { if(s == "")

weixin_39500853的博客 269

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3693

[leetcode] 1332. Remove Palindromic Subsequences

Description Given a string s consisting only of letters ‘a’ and ‘b’. In a single step you can remove one palindromic subsequence from s. Return the minimum number of steps to make the given string empty. A string is a subsequence of a given string, if it i

Learning from the mistakes 842

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【Python】【难度:简单】Leetcode 1332. 删除回文子序列

给你一个字符串s,它仅由字母'a' 和 'b'组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: 输入:s = "ababa" 输出:1 解释:字符串本身就是回文序列,只需要删除一次。 示例 2: 输入:...

thomashhs12的博客 231

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Leetcode题解: 1332. 删除回文子序列

题目描述 给你一个字符串 s,它仅由字母 ‘a’ 和 ‘b’ 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 解题思路 由于...

passionwp的博客 975

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode 1332. 删除回文子序列

1. 题目 给你一个字符串 s,它仅由字母 ‘a’ 和 ‘b’ 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: ...

Michael是个半路程序员 1352

双指针——leetcode.1332删除回文子序列

一、题目 1332.删除回文子序列 给你一个字符串 s,它仅由字母 ‘a’ 和 ‘b’ 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: 输入:s = "ababa" 输出:1 解释:字符串本身就是回文序列,只需要删除一次。

叶卡捷琳堡的博客 617

(python) leedcode 21. 合并两个有序链表

(python) leedcode 21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1-&gt;2-&gt;4, 1-&gt;3-&gt;4 输出:1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4 解题思路1: # Definition for singly-linked list. # clas...

MemoryHeroLi的博客 710

LeetCode题解(1332):删除回文子序列(Python)

题目:原题链接(简单) 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 32ms (97.61%) Ans 2 (Python) Ans 3 (Python) LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。 解法一(在同时包括a和b且不回文的情况下, 字符串中所有a和所有b所组成的子序列总是回文): def removePa

长行 574

leetcode 1332. Remove Palindromic Subsequences(删掉回文子串)

字符串s仅由a和b组成,每次从s中删除一个回文子串,问几步可把s删除完。 注意子串不需要是连续的,只需要保持顺序不变即可。思路: 既然子串不需要是连续的,且s仅由a和b组成。 那么最多只需要2步即可把s删除完。因为s本身是回文字符串时直接一步删除掉。 s本身不是回文字符串时,由于仅由a和b组成,我们跳着把a全部删除(不需要连续),因为全是a的字符串一定是回文字符串。 剩下的全都是b,也是一步可删除。...

蓝羽飞鸟的博客 315

【leetcode】1332. 删除回文子序列(remove-palindromic-subsequences)(思维)[简单]

链接 https://leetcode-cn.com/problems/remove-palindromic-subsequences/ 耗时 解题:5 min 题解:7 min 题意 给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。

Krone_的博客 470

【leetcode-python】1332. 删除回文子序列

给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。 「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。 示例 1: 输入:s = "ababa" 输出:1 解释:字符串本身就是回文序列,只需要删除一次。 示例 2: 输入:

hbk5241的博客 243

[字符串]leetcode1332:删除回文子序列(easy)

题目: 题解: 本题是一题规律题,因为最后结果只有0、1、2三种结果。若s为空串,返回0;若s不为空串且为回文串,那么返回1;若s不为空串且不为回文串,返回2。原因:因为s不为回文串,那么最小删除次数就为2,第一步删除所有的a,第二步删除所有的b。 代码如下: class Solution { public: //题解:找规律,由于字符串只存在字母ab,若字符串为回文串那么返回1...

algsup 932

leetcode 1332. Remove Palindromic Subsequences

题目 子序列是不需要连续的,子数组是需要连续的。 整个字符串只由a和b组成,所以最多2步。 class Solution { public int removePalindromeSub(String s) { if(s.length()==0) return 0; StringBuilder sb = new StringBuilder(s); ...

xiaobailaji的博客 158

leetcode:1332. 删除回文子序列

题目来源 leetcode 题目描述 题目解析 读懂题目,你就知道了99% 关键点:是回文子序列!!!不是回文子串!!, 比如abbbaaa,那么aaaa也是它的回文子序列 1.回文子序列和回文子串不一样,回文子序列不需要连续,只要求回文。而回文子串需要连续。 2.本串中只有a,b。那么共分为三种情况: 2.1 如果为空串,0次 2.2 如果本串为回文串,1次 2.3 如果本串不为回文,由...

OceanStar的博客 782
上一篇: leetcode 1304. Find N Unique Integers Sum up to Zero 详解 python3
下一篇: leetcode 1331. Rank Transform of an Array 详解 python3
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值