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

用动态规划思想解决回文串问题

回文串问题,我们其实优选的算法是中心扩展算法,但有些题目我们用动态规划思想去解决更简单。

我们用一道题来引入这个算法思想。

我们的思想是,把所有子串是否为回文的信息,全都保存在dp表里(On²)

我们假设到i位置开始,记录所有以i开头的所有字串,也就是来一个j在i后依次遍历。i到下一个位置时,j不必从0开始走,只需要从i之后走即可。

我们的dp表是二维数组,i表示横坐标j表示纵坐标。我们发现只需要填充数组的上三角部分即可。

dp[i][j],表示s字符串[i,j]的字串是否是回文串。

状态转移方程:dp[i][j]:如果s[i]不等于s[j]直接false;如果s[i]==s[j]又有以下几种情况。如果i==j或i+1==j直接为true,要么就是dp[i+1][j-1]。它要是true就是true否则为false;

这次的填表顺序是从下往上填表(数组方向)

最后看数组中true的数量即可。

int countSubstrings(string s) {int n=s.size();vector<vector<bool>> dp(n,vector<bool>(n));int ret=0;for(int i=n-1;i>=0;i--){for(int j=i;j<n;j++){if(s[i]==s[j])dp[i][j]=i+1<j?dp[i+1][j-1]:true;if(dp[i][j])ret++;}}return ret;}

http://www.dtcms.com/a/520987.html

相关文章:

  • 电子商务网站开发参考文献成都市网站建设费用及企业
  • 【ROS2】驱动开发入门
  • LLamaIndex传统的RAG
  • 大模型-自编码器Autoencoder
  • 专业建站是什么自己做的网站外网访问
  • LeetCode:37. 解数独
  • 算法 | 单链表相交
  • 比较好的建站公司大恒建设集团有限公司网站
  • 一键lnmp搭建wordpress优化设计数学
  • Crew连接多个 MCP 服务器
  • 做母婴育儿类网站好做seo排名吗网站建设细节差异化
  • 中山互联网推广:AI时代的数字营销新逻辑
  • 博罗网站建设费用无锡设计网站找哪家
  • 个人做网站要备案吗公司发展规划怎么写
  • Navicat 完整清理脚本
  • Python及Ipython解释器
  • 昇腾NPU运行Llama模型全攻略:环境搭建、性能测试、问题解决一网打尽
  • 前端通用布局(左侧侧边栏+顶部导航栏+主内容区)
  • 在线做印章的网站如何做网站导航
  • 制作微信商城网站开发怎么做仿制网站
  • 鸿蒙openharmony操作系统LiteOS-A内核技术全解析:架构、性能与开发实践
  • 【MATLAB源码-第303期】基于matlab的蒲公英优化算法(DO)机器人栅格路径规划,输出做短路径图和适应度曲线.
  • KP2203LGA/KP2205LGA芯片功能描述,内置65k/100kHz开关频率振荡器
  • asp网站程序优点东莞黄江网站建设
  • 阿里巴巴网站威海哪里做?苏州高端模板建站
  • 网站开发步骤说明书温州市建筑业联合会
  • wdt接口优化
  • 东莞网站建设服务协议wordpress字段添加按钮
  • 网站建设的技术标准中小企业网站建设渠道
  • 创建网站需要什么技术个人网站建设的方案