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

你有网站 我做房东 只收佣金的网站怎么推广引流客户

你有网站 我做房东 只收佣金的网站,怎么推广引流客户,成都网络公司小程序,wordpress 创建栏目把夜熬成粥,然后喝了它。 ——2024年7月1日 书接上回:区间动态规划——最长回文子串(C)-CSDN博客,大家有想到解决办法吗? 题目描述 给定一个字符串s(s仅由数字和英文大小写字母组成&#xff0…

把夜熬成粥,然后喝了它。

——2024年7月1日


书接上回:区间动态规划——最长回文子串(C++)-CSDN博客,大家有想到解决办法吗?

题目描述

        给定一个字符串s(s仅由数字和英文大小写字母组成,长度为1~1000),求s中最长的回文子序列长度。例如,s = “aferegga”,最长的回文子序列为“aerea”,其长度为5。


题解思路

        区间动态规划

下面是个人的思路:

1. 定义dp数组

        定义 dp[i][j]表示 s[i...j] 中最长回文子序列长度。

2. 确定dp限制条件

注:len表示字符串长度

        ①对于任何 len == 1 的字符串,dp[i][j] = 1;

        ②对于任何 len == 2 的字符串,dp[i][j] = dp[i][j-1] + (s[i] == s[j]);

        ③对于任何 len  ≥  3 的字符串,有两种情况:

        如果 s[i] == s[j],那么dp[i][j] = dp[i+1][j-1] + 2

        如果 s[i] != s[j],那么dp[i][j] = max(dp[i+1][j],dp[i][j-1])

解释如下:

        第一种情况,如果字符串长度为1的话,那么它一定是回文子串,长度唯一;

        第二种情况,如果字符串长度为2,那它就有两种可能,要么这两个字符相等,要么不等,不管哪一种情况,这个字符串的回文子序列至少是大于等于1的(第一种情况),如果相等,无非是把这个相等的加上即可。

        第三种情况,字符串长度不小于3时,也有两种可能:
        如果 s[i] == s[j],那么当前最长回文子序列长度就等于上一次的回文子序列长度加上2(两个相同的字符),也可以表示为dp[i][j] = dp[i+1][j-1] + 2*(s[i] == s[j])
        如果 s[i] != s[j],那么当前最长回文子序列长度至少是在 s[i+1....j]和s[i....j-1]中取最大值,即dp[i][j] = max(dp[i+1][j],dp[i][j-1])


推导过程

用矩阵推导如下:

 

代码展示

// 最长回文子序列长度
int getLongestPalind(string s){int size = s.size();vector<vector<int>> dp(size, vector<int> (size, 0));// 定义dp数组// dp[i][j]表示从i到j的最长子回文字符串长度for(int len = 1; len <= size; len++){for(int i = 0; i + len - 1 < size; i++){int j = i + len - 1;if(len == 1){dp[i][j] = 1;}else if(len == 2){dp[i][j] = dp[i][j-1] + (s[i] == s[j]);}else{if(s[i] == s[j]){dp[i][j] = dp[i+1][j-1] + 2 * (s[i] == s[j]);}else{dp[i][j] = max(dp[i+1][j], dp[i][j-1]);}}}}return dp[0][size-1];
}

运行结果

完整代码

// 区间动态规划
#include<iostream>
#include<vector>
#include<string>using namespace std;// 最长回文子序列长度
int getLongestPalind(string s){int size = s.size();vector<vector<int>> dp(size, vector<int> (size, 0));// 定义dp数组// dp[i][j]表示从i到j的最长子回文字符串长度for(int len = 1; len <= size; len++){for(int i = 0; i + len - 1 < size; i++){int j = i + len - 1;if(len == 1){dp[i][j] = 1;}else if(len == 2){dp[i][j] = dp[i][j-1] + (s[i] == s[j]);}else{if(s[i] == s[j]){dp[i][j] = dp[i+1][j-1] + 2 * (s[i] == s[j]);}else{dp[i][j] = max(dp[i+1][j], dp[i][j-1]);}}}}return dp[0][size-1];
}int main(){string s;cout<<"请输入字符串s:";cin>>s;cout<<"最长回文子序列长度为"<<getLongestPalind(s)<<endl;return 0;
}

http://www.hengruixuexiao.com/news/27883.html

相关文章:

  • 微信上做网站编辑seol英文啥意思
  • 网站建设维护多少钱百度电话查询
  • 彩票网站怎么做代理厦门人才网
  • 网站上的按钮怎么做百度客服电话是多少
  • 移动端网站如何做导出功能吗线上营销推广渠道
  • 开发网站公司的简介爱站网ip反查域名
  • 营销型网站建设服务品牌推广宣传词
  • 浙江省住房和城乡建设厅官方网站怎么seo网站排名
  • 顺德做网站公司哪家好seo网站结构优化
  • 一个人免费观看高清在线观看关键词优化师
  • 网站流量监控英文外链seo兼职
  • 做网站宝安制作网页用什么软件
  • 网上购物商城app宁波seo优化公司
  • 衡水做淘宝网站建设重庆seo扣费
  • 濮阳网站建设 公司名字杭州全网推广
  • 美国联邦建设部门网站关键词检索怎么弄
  • 官方网站下载拼多多app点击排名软件哪个好
  • 做企业网站所需要的资料广点通和腾讯朋友圈广告区别
  • 大朗网站制作seo整站优化
  • 自己做网站制作教程seo大全
  • wordpress安装插件慢自己怎么优化我网站关键词
  • 做音乐网站建设的开发平台线上引流线下推广方案
  • 日本b2b网站市场营销比较好写的论文题目
  • 微商新零售系统百度优化是什么意思
  • 做网站包含什么职位百度有什么办法刷排名
  • 建立网站英文专业网站优化培训
  • 动态网站建设软件沈阳线上教学
  • asp响应式h5网站源码下载百度广告一天多少钱
  • 百度站长社区市场调研报告怎么写的
  • 高端网站建设服务2022年最火的新闻摘抄