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

照片墙网站源码大型网站运维公司

照片墙网站源码,大型网站运维公司,广州凡科公司是外包吗,wordpress 分类关键词文章目录前言一、回文子串(力扣647)二、最长回文子序列(力扣516)前言 1、回文子串 2、最长回文子序列 一、回文子串(力扣647) 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目…

文章目录

  • 前言
  • 一、回文子串(力扣647)
  • 二、最长回文子序列(力扣516)


前言

1、回文子串
2、最长回文子序列


一、回文子串(力扣647)

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

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

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

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串
在这里插入图片描述
分析:
1、确定dp[]数组以及下标含义
在这里插入图片描述

布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。

2、递推公式
分析两种情况:
s[i]与s[j]相等,s[i]与s[j]不相等两种
当s[i]与s[j]不相等,那没啥好说的了,dp[i][j]一定是false。
当s[i]与s[j]相等时:

情况一:下标i 与 j相同,同一个字符例如a,当然是回文子串
情况二:i和j仅相差1,“aa” 这样子
情况三:i-j>1 “abccba” 或者 “abca”,此时我们需要判断i-1 和 j+1是不是回文子串,

3、初始化
都初始为false
4、遍历顺序
从下到上

class Solution {public int countSubstrings(String s) {int res = 0;char[] ss = s.toCharArray();if (s == null || (s.length() < 1)) return 0;boolean[][] dp = new boolean[ss.length][ss.length];for(int i=s.length()-1;i>=0;i--){for(int j=i;j<s.length();j++){if(ss[i]==ss[j]){if(Math.abs(i-j)<=1){dp[i][j] = true;res++;}else if(dp[i+1][j-1]==true){dp[i][j] = true;res++;}}else{dp[i][j] = false;}}}return res;}
}

在这里插入图片描述

二、最长回文子序列(力扣516)

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

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

在这里插入图片描述
分析:

回文子串是要连续的,回文子序列可不是连续的!
思路其实是差不多的,但本题要比求回文子串简单一点,因为情况少了一点。
1、确定dp数组以及下标含义
dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串,回文子串的长度最大为dp[i][j]

2、递推公式
分析两种情况:
如果s[i]与s[j]不相同,说明s[i]和s[j]的同时加入 并不能增加[i,j]区间回文子序列的长度,那么分别加入s[i]、s[j]看看哪一个可以组成最长的回文子序列。

加入s[j]的回文子序列长度为dp[i + 1][j]。
加入s[i]的回文子序列长度为dp[i][j - 1]。

那么dp[i][j]一定是取最大的,即:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);

当s[i]与s[j]相等时
dp[i][j] = dp[i+1][j-1] +2;

3、初始化
在对角线上的情况dp[i][j]应该是初始为1的。即:一个字符的回文子序列长度就是1。
其他情况dp[i][j]初始为0就行
4、遍历顺序
从下到上

class Solution {public int longestPalindromeSubseq(String s) {int[][] dp = new int[s.length()][s.length()];if(s==null || s.length()==0) return 0;//初始化for(int i=0;i<s.length();i++){dp[i][i] = 1;}//遍历顺序for(int i=s.length()-2;i>=0;i--){for(int j=i+1;j<s.length();j++){if(s.charAt(i)==s.charAt(j)){dp[i][j] = dp[i+1][j-1]+2;}else{dp[i][j] = Math.max(dp[i][j-1],dp[i+1][j]);}}}return dp[0][s.length()-1];}
}

在这里插入图片描述


http://www.yayakq.cn/news/641551/

相关文章:

  • 网站开发版本号wordpress怎样下载文件
  • 网站建设大赛策划书江西网站建设价格
  • 东营住房和城乡建设厅官网资阳优化团队招商
  • 网站建设的实训报告的实训感受潍坊信息网网站建设
  • 英文介绍做美食视频网站wordpress 批量添加用户
  • 网站推广需要几个人做网站建设宗旨
  • 网站后端怎么做深圳企业信用网
  • 网站优化公司开始上班了如何引用404做网站
  • 免费网站看v片在线第一次做狼雨seo网站排名查询
  • 华能集团网站建设方案项目分析wordpress 增加浮动条
  • 成都网站建设前十怎么做h5动态页面
  • 奉贤区网站建设电子商务网站用什么语言开发
  • 怎么用花生壳做网站ceo是什么职位的简称
  • 免费成品网站下载品牌网站建设 磐石网络的确好
  • cms建站app开发软件哪个好
  • 在线制作网站地图好网站建设公司哪家好?
  • 网站教程广州推广优化
  • 网站页面格式长春哪里有做网站的
  • 东营网红餐厅北京seo案例
  • 企业如何推广网站中信建设招聘
  • 杭州制作网站的公司网站建设电话销售模版
  • 做游戏推广网站手机网站滑动效果
  • 长沙网站推广合作怎么注册网站啊
  • 服务器网站源码在哪二维码制作网站
  • 哪些网站教你做美食的建设一个网站怎么赚钱
  • 电子商务网站建设薛万欣网站的页面风格是什么
  • 一个公司只能备案一个网站吗中国建设企业银行
  • 移动互联网开发是什么粤语seo是什么意思
  • 北京做网站黑名单演示动画制作免费网站
  • 荆州企业网站建设广东平台网站建设找哪家