Python版day57

news/2024/11/29 9:58:10/

647. 回文子串

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。

回文字符串 是正着读和倒过来读一样的字符串。

子字符串 是字符串中的由连续字符组成的一个序列。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

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

class Solution:def countSubstrings(self, s: str) -> int:lenS = len(s)# dp[i][j]表示 [i,j]的字串是否是回文字符串dp = [[False for _ in range(lenS)] for _ in range(lenS)]# s[i],s[j] 不相同那么返回False# s[i],s[j] 相同# 下标i和j相同,同一个字符 ->回文字符串# 下标i和j相差1,如aa ->回文字符串# 下标i和j相差大于1,那么检查[i+1,j-1]是否为回文# 遍历顺序从上到下从左到右for i in range(lenS-1,-1,-1):for j in range(i,lenS):charI = s[i]charJ = s[j]if charI == charJ:if i==j or j-i==1:dp[i][j] = Trueelse:dp[i][j] = dp[i+1][j-1]else:dp[i][j] = Falseres = 0for i in range(lenS):for j in range(lenS):if dp[i][j] ==True:res+=1return res

516. 最长回文子序列

给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。

子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。

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

class Solution:def longestPalindromeSubseq(self, s: str) -> int:# 回文子序列 不是连续的lenS = len(s)# dp[i][j]字符串s在范围内最长的回文子序列为dp[i][j]dp = [[0 for _ in range(lenS)]for _ in range(lenS)]# 初始化for i in range(lenS):for j in range(lenS):# 一个字符的字符串最长回文子序列为1if i==j:dp[i][j] = 1# 如果s[i] == s[j] 那么dp[i][j] = dp[i+1][j-1] + 2# 如果s[i] != s[j] 那么dp[i][j] = Math.max(dp[i+1][j],dp[i][j-1])# 遍历顺序从下到上,从左到右for i in range(lenS-1,-1,-1):for j in range(i+1,lenS):charI = s[i]charJ = s[j]if charI == charJ:dp[i][j] = dp[i+1][j-1]+2else:#  分别加入s[i]、s[j]看看哪一个可以组成最长的回文子序列。# 加入s[j]的回文子序列长度为dp[i + 1][j]。# 加入s[i]的回文子序列长度为dp[i][j - 1]。dp[i][j] = max(dp[i+1][j],dp[i][j-1])return dp[0][lenS-1]


http://www.ppmy.cn/news/979141.html

相关文章

Flask如何使用蓝图来组织和管理应用程序的路由和视图函数?

在Flask中,蓝图是一种非常方便的工具,可以帮助我们组织和管理应用程序的路由和视图函数。从新手的角度来看,我们可以把蓝图想象成一个超级市场,所有的商品都井然有序地摆放在货架上,我们可以在需要的时候轻松地找到我们…

OpenWebtext数据集

paper:Aaron Gokaslan, Vanya Cohen, Pavlick Ellie, and Stefanie Tellex. Openwebtext corpus, 2019. 用于GPT2训练的文本数据,GPT2主要是生成文本的,只有足够多的数据训练的模型才能学会说话,生成的才有可能是通顺的。GPT2文本生成可以采用huggingface中代码直接进行训…

机器学习:GPT3

GPT3 模型过于巨大 GPT3是T5参数量的10倍! 训练GPT3的代价是$12百万美元 Zero-shot Ability GPT3的思想是不是能拿掉Fine-tune 只需要给定few-shot或者zero-shot就能干相应的任务了。 few-shot learning(no gradient descent)&#…

Qt应用开发(基础篇)——QComboBox

目录 一、前言 二、属性和方法 三、信号 一、前言 QComboBox继承于QWidget,作为Qt Wdiget常用的控件,在实际开发中,经常用来作为某些特定参数属性的选择,比如语言、国家、字体、主题、模式、串口号、波特率等选择性…

【雕爷学编程】Arduino动手做(87)---ULN2003步进电机模组2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Elasticsearch 映射Mappings (三)

文章目录 前言一、Mapping简介查看索引映射 二、自动映射 dynamic mapping自动类型推断mapping注意点 三、手动映射 Expllicit mapping创建索引 四、自动映射模板 Dynamic Templates定义映射模板规则判定:conditlonsmatch_mapping_typematch、unmatchpath_match、pa…

华为战略方法论:BLM模型之关键任务与依赖关系

内容简介 在 BLM 模型中,执行部分包括四个模块,分别是: 关键任务与依赖关系;组织与绩效;人才;氛围与文化。 详细内容,大家可以参看下面这张图。 这四个模块其实是可以进一步划分成两个关键点…

fpga--流水灯

fpga流水灯的设计 思路:外部时钟频率50mhz,若要实现每隔0.5s闪烁一次,则使用内部计数器计数到24999999拉高一个周期电平,当电平被拉高的时候,进行LED灯电平的设置,每次检测到高电平,就进行一位…