当前位置: 首页 > wzjs >正文

企业网站建设免费进口跨境电商网站制作

企业网站建设免费,进口跨境电商网站制作,wordpress云典,印刷设计东莞网站建设文章目录 回文子串求解方案数求解最值 回文子序列求解方案数求解最值(最大长度) 回文的情况就是,从左边读和从右边读是一样的,总的来说,就是关于中间是对称的在这里又分为 回文子串 和 回文子序列 两种题型 回文子串:要求在原来的…

文章目录

  • 回文子串
    • 求解方案数
    • 求解最值
  • 回文子序列
    • 求解方案数
    • 求解最值(最大长度)

  • 回文的情况就是,从左边读和从右边读是一样的,总的来说,就是关于中间是对称的
  • 在这里又分为 回文子串回文子序列 两种题型
    • 回文子串:要求在原来的字符串中由连续的元素组成
    • 回文子序列:可以删除原来的字符串中的某些元素,可以挑着来选元素
  • 回文子串和回文子序列分为又细分为两种题型 求解方案数求解最长的情况(长度+直接返回具体的元素)

回文子串

回文子串:其实限制很大,当端点不等,那么s[i]-s[j]直接不满足,如果相等,还得看这个s[i+1]-s[j-1]的情况!,所以强调的是一个是否的问题!

求解方案数

LCR.020.回文子串

在这里插入图片描述

思路分析:属于区间dp的问题

  • 定义dp[i][j]表示原来的字符串s[i]-s[j]是否是回文子串
    def countSubstrings(self, s: str) -> int:# 求解的是回文子串的数量# 使用区间dp,d[i][j] 定义为 s[i]到s[j]是否是回文字符串n = len(s)dp = [[0]*n for _ in range(n)]# 当相等的时候,dp[i][j] = dp[i+1][j-1],否则就是0ans = 0for i in range(n-1,-1,-1):dp[i][i] = 1ans+=1for j in range(i+1,n):if s[i] == s[j]:if j == i+1:# 长度为2的得先处理dp[i][j] = 1ans+=1continuedp[i][j] = dp[i+1][j-1]if dp[i][j]:ans+=1return ans

求解最值

5.最长回文子串

在这里插入图片描述

思路分析:可以参照这个上面那个求解方案数的思路

  • 还是定义dp[i][j]为 原来的字符串s[i]-s[j]是否构成回文子串,遍历完一遍之后,我们再对这个二维的dp数组进行遍历,记录dp[i][j]==1,那么此时这个start = i ,end = j,记录长度最长的情况end-start+1的时候
class Solution:def longestPalindrome(self, s: str) -> str:# 直接暴力做法n = len(s)# 还是老样子,定义dp[i][j]为s[i]到s[j]是否是回文子串dp = [[0]*n for _ in range(n)]for i in range(n-1,-1,-1):dp[i][i] = 1for j in range(i+1,n):if s[i]==s[j]:if j - i ==1:dp[i][j] = 1else:dp[i][j] = dp[i+1][j-1]start,end = 0,0maxlen = 0# 开始遍历,这里有一个巧妙的地方就是:# 当dp[i][j] == 1的时候,回文子串的长度就是j-i+1for i in range(n):for j in range(n):if dp[i][j] :l = j-i + 1if l>maxlen:maxlen=lstart=iend=j return s[start:end+1]
  • 也可以用马拉车算法

回文子序列

求解方案数

730.统计不同回文子序列

在这里插入图片描述

思路分析:还是区间dp的思路

  • 定义dp[i][j]s[i]到s[j]的非空回文子序列的数量
  • nusm[i]==nums[j]时,dp[i][j]=dp[i+1][j-1] * 2 + 2,理论上是这个转移公式,但是得排除这个dp[i+1][j-1]里面还存在nums[i] 和 nums[j]对称的情况,如果需要减去对应重复的情况
  • 当不相等的时候dp[i][j] = dp[i+1][j] + dp[i][j-1] - dp[i+1][j-1]
class Solution:def countPalindromicSubsequences(self, s: str) -> int:# 区间dp求解方案数的问题# 定义dp[i][j] 为原来的序列中,s[i] 到 s[j]中mod = 10**9 + 7n = len(s)dp = [[0] * n for _ in range(n)]for i in range(n-1, -1, -1):dp[i][i] = 1  # 单个字符是一个回文子序列for j in range(i+1, n):if s[i] == s[j]:# 找到左右边界,避免重复计数left = i + 1right = j - 1# 找到第一个等于 s[i] 的字符while left <= right and s[left] != s[i]:left += 1# 找到第一个等于 s[j] 的字符while left <= right and s[right] != s[j]:right -= 1if left > right:# 没有重复字符dp[i][j] = dp[i+1][j-1] * 2 + 2elif left == right:# 只有一个重复字符,那么删除的是单独的nums[i]dp[i][j] = dp[i+1][j-1] * 2 + 1else:# 有多个重复字符,存在重复计数的过程dp[i][j] = dp[i+1][j-1] * 2 - dp[left+1][right-1]else:dp[i][j] = dp[i+1][j] + dp[i][j-1] - dp[i+1][j-1]dp[i][j] %= mod  # 取模if dp[i][j] < 0:dp[i][j] += mod  # 确保结果是非负的return dp[0][n-1]

求解最值(最大长度)

516.最长回文子序列

在这里插入图片描述

思路分析:区间dp

  • 定义dp[i][j]表示是s[i]-s[j]的子序列的最大长度
  • 区别于回文子串是与不是,这个子序列存在更大的可能性
  • nums[i]==nums[j],那么dp[i][j] = dp[i+1][j-1] + 2,否则就是只能选一个端点,dp[i][j] = max(dp[i+1][j],dp[i][j-1])
class Solution:def longestPalindromeSubseq(self, s: str) -> int:n = len(s)dp = [[0]*n for _ in range(n)]# dp[i][j]定义的是原来的字符串中s[i]到s[j]之间的最长的回文子序列的最大长度for i in range(n-1,-1,-1):dp[i][i] = 1for j in range(i+1,n):if s[i] == s[j]:dp[i][j] = dp[i+1][j-1] + 2else:dp[i][j] = max(dp[i+1][j],dp[i][j-1]) return dp[0][n-1]

文章转载自:

http://AK7EVqBv.hxgLy.cn
http://EEHxa4oK.hxgLy.cn
http://hM7AXa3q.hxgLy.cn
http://n0BcqRAG.hxgLy.cn
http://Dnz23ACn.hxgLy.cn
http://sXkDiLqP.hxgLy.cn
http://otx4eoQn.hxgLy.cn
http://JIVwNxC2.hxgLy.cn
http://4fRz9rxE.hxgLy.cn
http://Txb0duC0.hxgLy.cn
http://t4UByssb.hxgLy.cn
http://1ksr8y2K.hxgLy.cn
http://y0b9GrSl.hxgLy.cn
http://7dDXgbZ4.hxgLy.cn
http://KxbrZ8YK.hxgLy.cn
http://ISFQztVW.hxgLy.cn
http://RCBRUka9.hxgLy.cn
http://F1PSicna.hxgLy.cn
http://GLrRpxVi.hxgLy.cn
http://6m0Ros2z.hxgLy.cn
http://1qTotTpR.hxgLy.cn
http://gO6ZmttX.hxgLy.cn
http://HkE7m3Sm.hxgLy.cn
http://zStFlj8H.hxgLy.cn
http://bFUqmy4n.hxgLy.cn
http://TJOpVJsi.hxgLy.cn
http://OWgNG1GB.hxgLy.cn
http://0dhSWnDS.hxgLy.cn
http://II0lO1wb.hxgLy.cn
http://wx0E317k.hxgLy.cn
http://www.dtcms.com/wzjs/614140.html

相关文章:

  • 观澜做网站佛山企业网站建设咨询
  • 用python做购物网站庆阳西峰
  • 聊城门户网站wordpress不同用户不同菜单
  • dz论坛网站源码适合公司建设的网站
  • 合肥网站制作哪家强摄影网站设计代码
  • 盗版小说网站建设河北seo网站优化报价
  • 番禺网站建设哪里有企业网站用什么做
  • 青年人爱看的网站抖音运营
  • 设计网站收费怎样自己制作广告图片
  • 电商购物网站模板下载广州网站建设吧
  • 怎么优化自己的网站优秀地方门户网站系统
  • 360打不开建设银行的网站查网站域名备案查询
  • 百度建站系统合肥企业网站建
  • 站长统计网站统计神木网站建设
  • 网站开发遇到的风险毕业设计可以做网站不
  • 校园网建设网站特色推广普通话的意义50字
  • 营销型网站开发流程包括淘宝客免费网站建设
  • 返回链接 网站惩罚检查 错误检查山如何搭建响应式网站
  • 科凡全屋定制濮阳网站优化公司哪家好
  • 手机企业网站源码wordpress文本框代码
  • 如何做属于自己的网站网页制作专业选择
  • 网站推广广告 优帮云企业网站建设公司 末路
  • 淄博网站设计策划方案维护wordpress on.7主题
  • 网站不备案违法吗申请域网站
  • 站长统计企业网络推广方案
  • 网站的产品上传图片wordpress 静态主页
  • 做一个网站建设的流程电商平台推广方式
  • 搭建网站是什么意思教育直播平台网站建设费用
  • 吉林市建设工程档案馆网站搜索引擎都有哪些
  • 怎么制作自己的网站wordpress安装在本地