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

【算法题】最长回文子串

首先我们要清楚回文串的特性,就是对称的,那么可以这样想,如果一个字符串如果他是回文的,那么分别在她前后各加一个相等字符,那么加了后的新的字符串是不是也是回文的。所以这道题在判断是否回文时是在前一个串是回文的前提下的。

所以这道题就是通过在她的子串是回文的前提下来判断前后各加一个字符后是否回文,因此我们可以用动态规划来写,定义一个boolean类型的二维dp数组来判断该子串是否回文,如果是则为true,否则为false。然后在得到新的回文子串后就对长度进行更新。

代码如下

class Solution {public String longestPalindrome(String s) {int n=s.length();//dp[a][b]表示s.substring(a,b+1)是否回文boolean [][]dp=new boolean[n][n];for(int i=0;i<n;i++){dp[i][i]=true;}int left=0;//回文串的起点int length=1;//回文串的最大长度for(int r=1;r<n;r++){for(int l=0;l<r;l++){if(s.charAt(l)==s.charAt(r)&&((r-l)<=2||dp[l+1][r-1])){dp[l][r]=true;if(r-l+1>length){length=r-l+1;left=l;     }} }}return s.substring(left,left+length);  }
}

 

相关文章:

  • PDF处理控件Aspose.PDF教程:在 C# 中更改 PDF 页面大小
  • 【Linux系统】命令行参数 和 环境变量(含内建命令介绍)
  • Vue插件
  • ShardingSphere-JDBC 与 Sharding-JDBC 的对比与区别
  • 使用Redis作为缓存,提高MongoDB的读写速度
  • MySQL 索引底层原理剖析:B+ 树结构、索引创建维护与性能优化策略全解读
  • Vue-Todo-list 案例
  • 3.3 HarmonyOS NEXT原子化服务开发:卡片设计、轻量部署与场景化编排实战
  • Starrocks中RoaringBitmap杂谈
  • GICv3电源管理
  • 【位运算】丢失的数字(easy)
  • (T/SAIAS 020-2024)《医疗大模型语料一体机应用指南》深度解读与实施分析
  • 在虚拟宇宙中低语——进程间通信,Linux命名管道的前世今生
  • .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
  • GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术
  • SecureCRT 设置超时自动断开连接时长
  • MP4文件声音与视频分离
  • 1.springmvc基础入门(一)
  • 电镀机的阳极是什么材质?
  • ann算法的种类有哪些,之间的区别,各自的适用场景
  • 上海工商局官网/宁波seo推荐推广平台
  • 企业做营销网站/网络推广策划方案怎么写
  • 寻求南宁网站建设人员/工业设计公司
  • 怎么做网站关键词库排名/专门的网页制作工具有
  • 学习做网站可以吗/b站视频推广怎么买
  • 网站建设及维护招聘/微信营销的优势