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

网站建设价格西安郑州网站建设专业乐云seo

网站建设价格西安,郑州网站建设专业乐云seo,中国手工活加工官方网站,深圳网站做的好的公司名称学习资料:代码随想录 647. 回文子串 力扣题目链接 其实个人感觉这里的动规也是一个双指针的方法 // 定义:dp[i][j]表示区间范围为[i,j]左闭右闭的子串是否为回文子串,布尔类型 // 递推公式:如过s[i]s[j],那么i,j包括两个数或1个数的情况是…

学习资料:代码随想录

647. 回文子串

力扣题目链接

其实个人感觉这里的动规也是一个双指针的方法

// 定义:dp[i][j]表示区间范围为[i,j]左闭右闭的子串是否为回文子串,布尔类型
// 递推公式:如过s[i]==s[j],那么i,j包括两个数或1个数的情况是回文子串,如果包含超过两个数,那么dp[i+1][j-1]是true的话,也返回true,当然不相等就直接false了
// 初始化:可以先都初始化为false
// 遍历顺序:看递推公式
// 打印

// 定义:dp[i][j]表示区间范围为[i,j]左闭右闭的子串是否为回文子串,布尔类型
// 递推公式:如过s[i]==s[j],那么i,j包括两个数或1个数的情况是回文子串,如果包含超过两个数,那么dp[i+1][j-1]是true的话,也返回true,当然不相等就直接false了
// 初始化:可以先都初始化为false
// 遍历顺序:看递推公式
// 打印
class Solution {
public:int countSubstrings(string s) {vector<vector<bool>> dp(s.size(),vector<bool>(s.size(),false));int result = 0;              //记录一下,要不最后不知道返回啥 for(int i=s.size();i>=0;i--){for(int j=i;j<s.size();j++){if(s[i]==s[j]){if(j-i<=1){dp[i][j]= true;result++;}else if(dp[i+1][j-1]){dp[i][j]=true;result++;}}}}return result;}
};

双指针:从中心往两边扩散,以一个数为中心时处理的是奇数的回文子串,以两个数为中心时处理的是偶数的回文子串

class Solution {
public:int countSubstrings(string s) {int result = 0;for(int i=0;i<s.size();i++){result+=extend(s,i,i,s.size());     //处理奇数回文子串,如abaresult+=extend(s,i,i+1,s.size());   //处理偶数回文子串,如abba}return result;}int extend(const string& s,int i,int j,int n){int res;while(i>=0&&j<n&&s[i]==s[j]){i--;j++;res++;}return res;}
};

516.最长回文子序列

力扣题目链接

思路:

// 定义:dp[i][j]表示区间[i][j]左闭右闭内的最长回文子序列

// 递推公式:如果s[i]==s[j],那么当前的长度是上一状态dp[i+1][j-1]再加上两个长度,有一种向两侧扩散比较的感觉,否则,就比较去掉s[i]或s[j]的状态,继承dp[i+1][j]或dp[i][j-1].

// 初始化:dp[i][j]在i=j的时候都得是1,首先看递推公式,i=0的话访问j如果从0开始遍历,那访问-1肯定是访问不到,j从j+1开始遍历,这样的话,dp[i][i] 的情况是遍历不到的.或者就单看dp[i][j] = dp[i + 1][j - 1] + 2,也没有遍历dp[i][i]的准备

// 遍历顺序,j要从i+1开始遍历了

// 打印

// 定义:dp[i][j]表示区间[i][j]左闭右闭内的最长回文子序列
// 递推公式:如果s[i]==s[j],那么当前的长度是上一状态dp[i+1][j-1]再加上两个长度,有一种向两侧扩散比较的感觉,否则,就比较去掉s[i]或s[j]的状态,继承dp[i+1][j]或dp[i][j-1].
// 初始化:dp[i][j]在i=j的时候都得是1,首先看递推公式,i=0的话访问j如果从0开始遍历,那访问-1肯定是访问不到,j要从j+1开始遍历,这样的话,dp[i][i] 的情况是遍历不到的.或者就单看dp[i][j] = dp[i + 1][j - 1] + 2,也没有遍历dp[i][i]的准备
// 遍历顺序,j要从i+1开始遍历了
// 打印
class Solution {
public:int longestPalindromeSubseq(string s) {vector<vector<int>> dp(s.size(),vector<int>(s.size(),0));for(int i=0;i<s.size();i++){dp[i][i] = 1;}for(int i=s.size()-1;i>=0;i--){for(int j=i+1;j<s.size();j++){if(s[i]==s[j]){dp[i][j]=dp[i+1][j-1]+2;}else{dp[i][j]=max(dp[i][j-1],dp[i+1][j]);}}}return dp[0][s.size()-1];}
};

其实也可以用上一题的方法来初始化,也AC了

class Solution {
public:int longestPalindromeSubseq(string s) {vector<vector<int>> dp(s.size(),vector<int>(s.size(),0));// for(int i=0;i<s.size();i++){//     dp[i][i] = 1;// }for(int i=s.size()-1;i>=0;i--){for(int j=i;j<s.size();j++){if(s[i]==s[j]){if(i==j) dp[i][j]=1;       //把初始化放在这里了else{dp[i][j]=dp[i+1][j-1]+2;}}else{dp[i][j]=max(dp[i][j-1],dp[i+1][j]);}}}return dp[0][s.size()-1];}
http://www.dtcms.com/wzjs/146193.html

相关文章:

  • 江苏省建设工程上岗证查询网站关键词难易度分析
  • 网站开发 瀑布结构来几个关键词兄弟们
  • 襄阳万家灯火网站建设西安百度关键词排名服务
  • 山东网站建设公司网络销售好做吗
  • 线上设计师是什么app优化建议
  • 给人做ppt的网站吗广告营销案例分析
  • 区块链开发书籍seo网络优化
  • 上海建筑工程网seo关键词排名优化评价
  • 手机网站建设app引擎优化seo是什么
  • 大淘客怎么做网站成都网站建设公司
  • 网络服务提供商是指谷歌优化seo
  • wordpress 问答模块seo咨询河北
  • 建设网站编程语言百度人工智能开放平台
  • 做美食软件视频网站有哪些2023年4 5月份疫情结束吗
  • 长春网站开发公司歌尔股份砍单
  • asp网站路径搜索引擎优化是指什么意思
  • 电商网站更适合郑州seo优化公司
  • 榕江网站建设seo优化顾问服务
  • 多元网站建设seo排名推广工具
  • 设计公司网站时什么是重要的什么是电商?电商怎么做
  • 网站建设公司顺义交换链接的其它叫法是
  • 余杭区政府门户网站建设工程磁力天堂torrentkitty
  • 网站建设推广是什么营销型网站建设论文
  • 厦门网站设计建设百度网址大全设为主页
  • 广州专业的做网站站长交流平台
  • 做英文简历的网站百度竞价关键词质量度怎么提升
  • 免费做网站支持绑定百度网站快速优化
  • 苏州外贸网站建设制作方案百度广告费
  • 枣阳网站建设公司友情链接的获取途径有哪些
  • 做平面免费接单网站百度推广登录平台怎么收费