Python|删除回文子序列

简介: Python|删除回文子序列

问题描述

给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。

返回删除给定字符串中所有字符(字符串为空)的最小删除次数。

「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。

「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文

示例 1:

输入:s = "ababa"

输出:1

解释:字符串本身就是回文序列,只需要删除一次。

示例 2:

输入:s = "abb"

输出:2

解释:"abb" -> "bb" -> "".

先删除回文子序列 "a",然后再删除 "bb"。

示例 3:

输入:s = "baabb"

输出:2

解释:"baabb" -> "b" -> "".

先删除回文子序列 "baab",然后再删除 "b"。

示例 4:

输入:s = ""

输出:0


解决方案

这道题其实很简单,最大的问题就是读题。

题中要求的是子序列,但平常做题基本都是子串,而且题目中的示例删除的都是子串,很容易误导我们。

回文子序列和回文子串的区别是:子串是字符串中连续的一个序列,而子序列是字符串中保持相对位置的字符序列,例如,"aaa"可以是字符串"aaba"的子序列但不是子串。简单的说就是子串必须连续,子序列不一定连续。

这样的话这道题就很简单,简单分析一下:次数最多就是2,因为只有a和b,那么我们最多,第一次删除一个,第二次删除另一个。另外就是本身就是回文串,那就删一次,本身是空的,就不用删。

题目代码:

class Solution:

    def removePalindromeSub(self, s: str) -> int:

        if s == '':

            return 0

        elif s == s[::-1]:

            return 1            

return 2

目录
相关文章
|
3月前
|
Python
【Leetcode刷题Python】376. 摆动序列
文章提供了解决LeetCode "摆动序列" 问题的Python实现代码,通过遍历整数数组并使用两个变量 down 和 up 来记录正差和负差摆动序列的长度,最终返回最长摆动子序列的长度。
39 0
|
3月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
75 1
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
2月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
149 1
|
3月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
131 0
|
2月前
|
机器学习/深度学习 索引 Python
python之序列
python之序列
143 59
|
23天前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
24天前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
3月前
|
机器学习/深度学习 Python
时间序列特征提取:从理论到Python代码实践
时间序列是一种特殊的存在。这意味着你对表格数据或图像进行的许多转换/操作/处理技术对于时间序列来说可能根本不起作用。
57 1
时间序列特征提取:从理论到Python代码实践
|
3月前
|
机器学习/深度学习 分布式计算 大数据
几行 Python 代码就可以提取数百个时间序列特征
几行 Python 代码就可以提取数百个时间序列特征
|
3月前
|
机器学习/深度学习 数据采集 算法
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现
本文介绍了一个基于Python的时间序列模型,用于分析和预测2021-2022年重庆地区的气温变化趋势,通过ARIMA和LSTM模型的应用,揭示了气温的季节性和趋势性变化,并提供了对未来气温变化的预测,有助于气象预报和相关决策制定。
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现