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

力扣5. 最长回文子串

动态规划

  • 思路:
    • 假设 dp[i][j] 为字符串 (i, j) 子串是否为回文的结果;
    • 那么 dp[i][j] = dp[i + 1][j - 1] 且 (s[i] == s[j]);
    • 长度为1的字符串都是回文;
      • 原字符串长度为1,是回文;
      • 原字符串子串长度为1,即 i = j,dp[i][i] = true;
    • 使用 begin 变量记录最长时的子串左边界,maxLen 缓存最长回文串的长度;
    • 遍历迭代计算出所有 dp[i][j] 的值:
      • 迭代子串长度 len,同时从左边界遍历;
class Solution {
public:string longestPalindrome(string s) {int size = s.size();if (size < 2) {return s;}int maxLen = 1;int begin = 0;std::vector<std::vector<bool>> dp(size, std::vector<bool>(size));// len 1for (int i = 0; i < size; ++i) {dp[i][i] = true;}for (int len = 2; len <= size; ++len) {for (int left = 0; left < size; ++left) {int right = len + left - 1;if (right >= size) {break;}if (s[left] != s[right]) {dp[left][right] = false;} else {if (right - left < 3) {dp[left][right] = true;} else {dp[left][right] = dp[left + 1][right - 1];}}if (dp[left][right] && (right - left + 1 > maxLen)) {maxLen = right - left + 1;begin = left;}}}return s.substr(begin, maxLen);}
};

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

相关文章:

  • 肆[4],函数VectorToHomMat2d/AffineTransPoint2d
  • 下载文件 后端返回给前端 response header 响应头
  • lvs负载均集群
  • luttuce(RedisTempate)实现hash expire lua脚本
  • 【Xamarin】WebView连接局域网自动跳转外部浏览器问题的解决
  • 【Unity动画】实现不同的肢体动作自由搭配播放Layer+Avatar Mask
  • 将0x06(16进制)转换为二进制
  • 考PRINCE2有用么?有PMP证书了还需要考PRINCE2吗?
  • 06进程间关系-学习笔记
  • Vue的动画方式有几种
  • PyTorch: 基于【VGG16】处理MNIST数据集的图像分类任务【准确率98.9%+】
  • 【lombok】从easyExcel read不到值到cglib @Accessors(chain = true)隐藏的大坑
  • 1-SaaS通识
  • Spring Boot实现接口幂等
  • ShopsN commentUpload 文件上传漏洞复现
  • 【Qt5】ui文件最后会变成头文件
  • 数组笔试题解析(下)
  • PPT插件-好用的插件-图形缩放-大珩助手
  • 五:爬虫-数据解析之xpath解析
  • 什么是Laravel?它有哪些特性?
  • [足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-3燃烧卡路里-系统分析实例
  • 安恒明御安全网关 aaa_local_web_preview文件上传漏洞复现
  • 基于ssm企业人事管理系统的设计与实现论文
  • 你知道为什么要加 final 关键字了吗?
  • 找不到mfc100u.dll,程序无法继续执行?三步即可搞定
  • postman接口测试之Postman配置环境变量和全局变量
  • OpenSSL 编程示例
  • K8S学习指南(17)-k8s核心对象CronJob
  • 单片机Freertos入门(二)任务调度的介绍
  • QT----自定义信号和槽