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

【算法day5】最长回文子串——中心拓展方法

最长回文子串

给你一个字符串 s,找到 s 中最长的 回文 子串。

https://leetcode.cn/problems/longest-palindromic-substring/
在这里插入图片描述

class Solution {
public:
    string longestPalindrome(string s) {
        int s_len = s.size();
        if (s_len <= 1)
            return s;
        int begin = 0, maxlen = 1;
        for (int i = 0; i < s_len; i++) {
            auto [begin1, end1] = getBorder(s, i, i);     // 奇数子串
            auto [begin2, end2] = getBorder(s, i, i + 1); // 偶数子串的情况;
            if (end1 - begin1 + 1 > maxlen) {
                maxlen = end1 - begin1 + 1;
                begin = begin1;
            }
            if (end2 - begin2 + 1 > maxlen) {
                maxlen = end2 - begin2 + 1;
                begin = begin2;
            }
        }
        return s.substr(begin, maxlen);
    }

    pair<int, int> getBorder(const string& s, int begin, int end) {
        while (begin >= 0 && end < s.size() && s[begin] == s[end]) {
            // 拓展边界
            begin--;
            end++;
        }
        return {++begin, --end};
    }
};

相关文章:

  • mysql安装(演示为mac安装流程)
  • 自动控制原理【知识点总结、复习笔记】
  • 论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)
  • MySQL-----SELECT语句-查询
  • JVM组成面试题及原理
  • 《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》
  • Linux——.sh 多个阶段的串行和并行执行程序
  • 向量内积(点乘)和外积(叉乘)
  • Linux一键安装zsh终端美化插件
  • MySql自动安装脚本
  • JavaEE进阶(2) Spring Web MVC: Session 和 Cookie
  • BroadcastReceiver的应用
  • 算法 之 堆
  • Rat工具:XiebroC2 一款国产C2工具简单使用介绍
  • 第四章:反射-Reflecting Your World《Unity Shaders and Effets Cookbook》
  • 2025.3.3-2025.3.9学习周报
  • 零基础上手Python数据分析 (1):Windows环境配置与开发工具,开启数据科学之旅!
  • Spring Cloud Gateway 笔记
  • 微软程序的打包格式MSIX
  • [项目]基于FreeRTOS的STM32四轴飞行器: 五.Motor驱动
  • 主做销售招聘的招聘网站有哪些/新闻发稿平台有哪些
  • 网站建设概括/百度seo泛解析代发排名
  • 网站建设 软件开发的公司哪家好/免费有效的推广平台
  • 怎样给一个公司做网站/百度导航下载2022最新版
  • 哪家网站建设做的好/做国外网站
  • 免费建手机个人网站/百度做广告怎么收费