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

004最长回文子串

在这里插入图片描述在这里插入图片描述
#include
#include
#include

using namespace std;

class Solution {
public:
string longestPalindrome(string s) {
int n = s.size();
if (n < 2) {
return s;
}

    int maxLen = 1;int begin = 0;// dp[i][j] 表示 s[i..j] 是否是回文串vector<vector<int>> dp(n, vector<int>(n));// 初始化:所有长度为 1 的子串都是回文串for (int i = 0; i < n; i++) {dp[i][i] = true;}// 递推开始// 先枚举子串长度for (int L = 2; L <= n; L++) {// 枚举左边界,左边界的上限设置可以宽松一些for (int i = 0; i < n; i++) {// 由 L 和 i 可以确定右边界,即 j - i + 1 = L 得int j = L + i - 1;// 如果右边界越界,就可以退出当前循环if (j >= n) {break;}if (s[i] != s[j]) {dp[i][j] = false;} else {if (j - i < 3) {dp[i][j] = true;} else {dp[i][j] = dp[i + 1][j - 1];}}// 只要 dp[i][L] == true 成立,就表示子串 s[i..L] 是回文,此时记录回文长度和起始位置if (dp[i][j] && j - i + 1 > maxLen) {maxLen = j - i + 1;begin = i;}}}return s.substr(begin, maxLen);
}

};


http://www.mrgr.cn/news/81143.html

相关文章:

  • Web3.0安全开发实践:探索比特币DeFi生态中的PSBT
  • LeetCode429周赛T4
  • 项目底链华为链切换长安链经验总结
  • WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)
  • 【MAC】深入浅出 Homebrew 下 Nginx 的安装与配置指南
  • [spring]XML配置文件定义Bean属性
  • 麒麟V10,arm64,离线安装docker和docker-compose
  • ESP32S3 使用LVGL驱动LCD屏(ST7789主控)
  • jsp-servlet开发
  • 41 stack类与queue类
  • Docker Compose 配置指南
  • CosyVoice安装过程详解
  • 手动修改nginx-rtmp模块,让nginx-rtmp-module支持LLHLS
  • ubuntu22.04安装PaddleX3
  • 项目代码第6讲:UpdownController.cs;理解 工艺/工序 流程、机台信息;前端的“历史 警报/工艺 记录”
  • ShardingSphere(分库分表)
  • 重温设计模式--建造者模式
  • 脚本专题Script
  • Redis分片集群+MQ处理高并发
  • 从零创建一个 Django 项目
  • GIS数据处理/程序/指导,街景百度热力图POI路网建筑物AOI等
  • Pandas系列|第二期:Pandas中的数据结构
  • Redis安装、启动、卸载
  • GitCode 光引计划投稿|MilvusPlus:开启向量数据库新篇章
  • NIPS2014 | GAN: 生成对抗网络
  • C语言初阶习题【15】猜数字游戏