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

中心扩展算法

目录

最长回文字串


博主主页:东洛的克莱斯韦克-CSDN博客

最长回文字串

5. 最长回文子串 - 力扣(LeetCode)

        当索引到一个字符是就以该字符为中心向外扩展

class Solution {
public:
    string longestPalindrome(string s) {

        //改题算法思想为 模拟 和 中心扩展算法
        
        string ret;
        int len = s.size(), left = 0, right = 0, i = 0;

        while (i < len) {

            //基数长度的回文子串
            left = i - 1; right = i + 1;
            while (left >= 0 && right < len && s[left] == s[right] ) { left--; right++; }
            if (ret.size() < right - left - 1) ret = s.substr(left + 1, right - left - 1);
    
            //偶数长度的回文子串
            left = i - 1; right = i;
            while (left >= 0 && right < len && s[left] == s[right] ) { left--; right++; }
            if (ret.size() < right - left - 1) ret = s.substr(left + 1, right - left - 1);

            //更新下标
            i++;
        }

        return ret;
    }
};

http://www.kler.cn/a/397256.html

相关文章:

  • 类和对象——拷贝构造函数,赋值运算符重载(C++)
  • java中volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?
  • Vulhub漏洞复现---solr---CVE-2019-17558
  • 初识ElasticSearch
  • linux企业中常用NFS、ftp服务
  • Javascript_设计模式(二)
  • 使用 Grafana api 查询 Datasource 数据
  • 小程序如何完成订阅
  • 每天五分钟机器学习:支持向量机算法数学基础之核函数
  • Centos 9 安装 PostgreSQL 16 并支持远程访问
  • 编程初学者的第一个 Rust 系统
  • java模拟键盘实现selenium上下左右键 table中的左右滚动条实现滚动
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势
  • Docker 命令大全
  • 力扣 LeetCode 541. 反转字符串II(Day4:字符串)
  • Vue3 模板语法
  • C#调用方法时获取方法名、类名、命名空间
  • Spring-boot 后端java配置接口返回jsp页面
  • leetcode100:相同的树
  • 前端面试笔试(三)
  • MySQL:表设计
  • Ubuntu24.04上安装和配置MariaDB
  • 内容营销专家刘鑫炜:AI搜索会让内容营销变得更容易吗?
  • html + css 自适应首页布局案例
  • 如何编译 Cesium 源码
  • 机器学习基础02_特征工程