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

【力扣】5.最长回文子串

这道题我主要是通过动态规划来进行解题,看了我好久(解析),生疏了呀。

首先就是判断一个字符串是不是回文,我们可以设置两个指针,从前往后进行判断即可,运用暴力解题法,这里运用的动态规划法主要是要搞清楚原理即可。

中心思想就是先判断两端的是否相等,若是则 dp[i][j] = true,然后是从短到长的一个过程,与此同时不断更新最长子串的下标,最后再返回,代码里面有详细的解释。

class Solution {
public:string longestPalindrome(string s) {// 1.动态规划(很有意思)int n=s.size();if(n<2) return s; //长度为1时直接返回即可// maxLen和begin的作用在于存满足条件的字符串的上限和下限,用于最后结果的截取int maxLen=1,begin=0;// dp[i][j] 表示 s[i..j] 是否是回文串vector<vector<int>> dp(n,vector<int>(n));for(int i=0;i<n;i++) dp[i][i]=true;// L表示子串长度for(int L=2;L<=n;L++){// i表示能确定左边界for(int i=0; i<n;i++){//j为右边界int j=i+L-1;if(j>=n) break; // 越界 跳//左右边界值相等且在长度if(s[i] != s[j]){dp[i][j]=false;}else{//当满足条件的子串的长度小于等于3时,此时的j-i是<=2的,所以可以以此来进行判断if(j-i<3 ){dp[i][j]=true;}else{dp[i][j]=dp[i+1][j-1];}}//最后进行判断,并更新下标的值最后进行返回即可if(dp[i][j]&&j-i+1>maxLen){maxLen=j-i+1;begin=i;}}}return s.substr(begin,maxLen);}
};

 龙年快乐哦~

相关文章:

  • 探索设计模式的魅力:捕捉变化的风-用观察者模式提升用户体验
  • golang通用后台管理项目——Go+Vue通用后台管理项目实战
  • react中的diff算法
  • 大模型提示学习、Prompting微调知识
  • Android13多媒体框架概览
  • TCP相关知识点
  • containerd中文翻译系列(九)主机
  • AI 大模型 对话
  • 算法-----高精度算法1(高精度加法,高精度减法)(详解)
  • 掘根宝典之C++运算符重载
  • Android Graphics 图像显示系统 - 开篇
  • ECMAScript Modules 规范示例详解
  • vue三种路由守卫详解
  • JDK、JRE、JVM三者关系详解
  • 当go get获取不到软件包时
  • [iOS]Core Data浅析一 -- 启用Core Data
  • “大数据应用场景”之隔壁老王(连载四)
  • Bootstrap JS插件Alert源码分析
  • C语言笔记(第一章:C语言编程)
  • eclipse(luna)创建web工程
  • javascript面向对象之创建对象
  • Java小白进阶笔记(3)-初级面向对象
  • Joomla 2.x, 3.x useful code cheatsheet
  • leetcode388. Longest Absolute File Path
  • Spark RDD学习: aggregate函数
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SQLServer插入数据
  • Vue.js 移动端适配之 vw 解决方案
  • 编写符合Python风格的对象
  • 大快搜索数据爬虫技术实例安装教学篇
  • 技术发展面试
  • 区块链分支循环
  • 深度解析利用ES6进行Promise封装总结
  • 写代码的正确姿势
  • 源码安装memcached和php memcache扩展
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • MPAndroidChart 教程:Y轴 YAxis
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # Panda3d 碰撞检测系统介绍
  • (+4)2.2UML建模图
  • (搬运以学习)flask 上下文的实现
  • (附源码)php新闻发布平台 毕业设计 141646
  • (一)为什么要选择C++
  • (已解决)什么是vue导航守卫
  • (转)jdk与jre的区别
  • (转)Linq学习笔记
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET业务框架的构建