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

牛客热题:最长回文子串

📟作者主页:慢热的陕西人

🌴专栏链接:力扣刷题日记

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

在这里插入图片描述

文章目录

  • 牛客热题:最长回文子串
    • 题目链接
    • 方法一:动态规划
      • 思路
      • 代码
      • 复杂度

牛客热题:最长回文子串

题目链接

最长回文子串_牛客题霸_牛客网 (nowcoder.com)

方法一:动态规划

思路

①状态表示:

d p [ i ] [ j ] dp[i][j] dp[i][j]表示以A[i],A[j]为头尾的字符串是否是回文字符串的状态

②状态转移方程:

当A[i] 和 A[j] 相等的情况下:

d p [ i ] [ j ] = d p [ i + 1 ] [ j − 1 ] dp[i][j] = dp[i + 1][j - 1] dp[i][j]=dp[i+1][j1]

③初始化:

循环内部会直接对长度为1的区间直接修改为状态为true

④填表顺序:

最外层:字符串的长度从短到长

内部:i,也就是起始位置从左到右即可

⑤返回值:

在循环的过程中, d p [ i ] [ j ] dp[i][j] dp[i][j]为真的话就更新当前的 r e s = l e n + 1 res = len + 1 res=len+1;

最后返回res即可

代码

int getLongestPalindrome(string A) {int n = A.size();int res = 0;vector<vector<bool>> dp(n, vector<bool>(n, false));for(int len = 0; len < n; ++len){for(int i = 0; i < n - len; ++i){int j = i + len;if(A[i] == A[j]){if(len <= 1){dp[i][j] = true;}else {dp[i][j] = dp[i + 1][j - 1];}if(dp[i][j]){res = len + 1;}}}}return res;}

复杂度

时间复杂度: O ( N 2 ) O(N ^ 2) O(N2),首先枚举从0到n - 1 的长度的字符串

空间复杂度: O ( N 2 ) O(N^2) O(N2),利用了额外的dp数组,来存储对应的状态

http://www.lryc.cn/news/375150.html

相关文章:

  • 如何访问寄存器
  • 苍穹外卖笔记-18-修改密码、bug记录
  • java如何截取字符串
  • 虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
  • 低代码组件扩展方案在复杂业务场景下的设计与实践
  • 震撼科技界的GPT-4o发布首日即遭“越狱破防”
  • 保护密码安全,探讨密码加盐及其在Go语言中的实现
  • Sqoop学习详细介绍!!
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)
  • ctfshow web 单身杯
  • 天锐绿盾加密软件,它的适用范围是什么?
  • mysql面试题 Day2
  • Excel加密怎么设置?这5个方法不容错过!(2024总结)
  • 2024年下一个风口是什么?萤领优选 轻资产创业项目全国诚招合伙人
  • Redis 网络模型
  • 【设计模式之组合模式 -- C++】
  • C# 通过Win32API设置客户端系统时间
  • VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!
  • 【Kubernetes】k8s 自动伸缩机制—— HPA 部署
  • MT1415 大小相同
  • 使用python库moviepy完成视频剪辑
  • Java高手的30k之路|面试宝典|精通泛型
  • 清理Linux操作系统buff/cache缓存
  • 接口测试的几种方法
  • OpenGL3.3_C++_Windows(3)
  • 24执业药师报名时间汇总及报名流程!
  • 成都跃享未来教育咨询解锁新篇章
  • 怎么把网页上的接口信息导入postman
  • 10KM无人机高清图传通信模组,低延迟、抗干扰,飞睿智能无线MESH组网模块
  • 分布式文件存储 - - - MinIO从入门到飞翔