leetcode第五题-最长回文子字符串

2023-11-01

题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。

示例 2:

输入: "cbbd"
输出: "bb"

中心扩展算法:

回文中心的两侧互为镜像。因此,回文可以从它的中心展开,由于所含字母数为偶数的回文的中心可以处于两字母之间(例如 “abba” 的中心在两个‘b’ 之间)。因此,有 2n −1 个这样的中心。

代码如下:

public class day04 {
    public static void main(String[]args){
        String str="nxlcuisdsdb";
         String result=longestPalindrome(str);
        System.out.println(result);
    }

    private static String longestPalindrome(String str) {
        if(str==null || str.length()<1) return "";
        if(str.length()==1)return str;
        int start=0;int end=0;
        for(int i=0;i<str.length();i++){
            int len1=Center(str,i,i);
            int len2=Center(str,i,i+1);
            int len=Math.max(len1,len2);
            if(len>end-start){
                start=i-(len-1)/2;
                end=i+len/2;
            }

        }
        return str.substring(start,end+1);
    }

    private static int Center(String str, int left, int right) {
        int l=left;int r=right;
        while(l>=0 && r<str.length() && str.charAt(l)==str.charAt(r)){
            l--;
            r++;
        }
        return r-l-1;
    }
}

时间复杂度为 O(n^2),空间复杂度:O(1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode第五题-最长回文子字符串 的相关文章

  • stata基本指令

    写在前面 做笔记用 切换数据集一定要用clear 命令结构 by varlist command option 是可选项的意思 但还是不太明白和前面不带都逗号的区别 log uising set more on 显示开头 自己翻页 set

随机推荐

  • 解决Unexpected end of JSON input 报错

    报错如上图 根据代码排查是因为此处字段为空 经过种种排查 发现不是接口返回数据的问题 在百度中查到一般会出现这种情况 Json parse 括号里边的值不能为空值 为空就会报错 然后测试了一下依旧报错 又发现了另一种情况 若对象的参数或数组
  • 什么是期货交易入门知识(生猪期货交易入门知识)

    什么是期货交易简介 Futures 英文名称是Futures 与现货完全不同 现货是可以交易的实物商品 商品 债券等是标的标准化交易合约 因此 标的物可以是商品 例如黄金 原油 农产品 或金融工具 期货交易是在现货交易的基础上 以远期合约交
  • Java 枚举

    1 枚举概述 枚举是java中的一种类型 用来表示固定且有限个的对象 并将其一个一个列举出来 使用场景 星期 Monday 星期一 Sunday 星期天 性别 Man 男 Woman 女 季节 Spring 春节 Winter 冬天 支付方
  • js中 的模块化 导入、导出 整理

    参考1 参考2 module exports与exports是CommonJS的规范 export与export default是es6规范 require 是 AMD规范引入方式 import是es6的一个语法标准 小程序中也可以使用 i
  • 选特化还是重载

    一个函数模板即有特化版又有重载版 编译器会选哪个 以下代码来自 为什么不要特化函数模版 的例3 1 include lt iostream gt 2 3 using namespace std 4 5 template lt class T
  • open-vm-tools与VMware Tools

    安装VMware Tools经常会出现兼容性不好 系统之间复制文件失灵 并且安装时提示建议使用open vm tools 于是放弃vmware tools的安装 尝试使用open vm tools open vm tools 是 VMwar
  • 浅谈汇编器、编译器和解释器

    作者 硬核老王 简单介绍一下编程方式的历史演变 Erik O shaughnessy 作者 在计算机诞生不久的早期年代 硬件非常昂贵 而程序员比较廉价 这些廉价程序员甚至都没有 程序员 这个头衔 并且常常是由数学家或者电气工程师来充当这个角
  • 大型语言模型(LLMs)的幻觉问题【Answer From chatGPT】

    减轻大型语言模型 LLMs 的幻觉问题是一个重要的研究领域 以下是一些减轻LLMs幻觉的方法和建议 更好的数据筛选和预处理 在训练LLMs之前 可以通过更仔细的数据筛选和预处理来减轻幻觉 删除或修复训练数据中的不准确信息和虚假关联可以有助于
  • 新冠肺炎疫情实时数据查询

    一 接口介绍 本接口数据收集于百度 丁香园 无糖科技等网站 感谢参与收集数据的广大网友 数据均由人工收集 虽经细心筛查但不能保证没有错漏之处 仅可作为参考使用 二 接入点功能 今日肺炎疫情明细 回最新的国内covid 19疫情数据 包括各地
  • C#中,处理JSON文件(解析与生成)

    建议用控制台编译方式 首先 添加引用 System Web Extensions 添加Newtonsoft Json库 并且需要应用命名空间 using System Web Script Serialization using Newto
  • Java 重试机制导致重复消费_RocketMQ重试机制及消息幂代码实例解析

    这篇文章主要介绍了RocketMQ重试机制及消息幂代码实例解析 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 一 重试机制 1 由于MQ经常处于复杂的分布式系统中 考虑网络波动 服务宕机
  • Ubuntu安装mysql以及配置远程连接

    1 安装mysql apt get install mysql server 查看mysql是否安装成功 dpkg l grep mysql server 2 修改mysql root密码 进入mysql mysql u root p 进入
  • 中文编码杂谈

    中文编码杂谈 桂南 编码问题的例子 在windows自带的notepad 记事本 程序中输入 联通 两个字 保存后再次打开 会发现 联通 不见了 代之以 的乱码 这是windows平台上典型的中文编码问题 即文件保存的时候是按照ANSI编码
  • win10配置系统默认utf-8编码

    最近在使用Gvim打开utf 8文件时 出现了中文乱码 于是想把系统默认编码从gbk修改为utf 8 在Win10设置中 系统设置 gt 时间和语言 gt 语言 gt 管理语言设置 gt 更改系统区域设置 gt 勾选Unicode UTF
  • 98-字节输出流写入数据到文件

    写入数据的原理 内存 gt 硬盘 java程序 JVM java虚拟机 OS 操作系统 OS调用系统自己写数据的方法 把数据写入到文件中 字节输出流的使用步骤 重点 1 创建对象 创建一个FileOutputStream对象 构造方法中传递
  • Linux系统:CentOS编译Linux内核

    目录 一 实验 1 下载内核 2 解压内核源码 3 配置依赖的环境 4 进入源码目录 使用make menuconfig开启菜单选项 手动选择内核功能 5 编译内核 6 安装模块 7 安装内核 8 验证新内核版本 一 实验 1 下载内核 1
  • 爬虫python代码-python爬虫(附源码)

    声明 本文内容皆来自网上 环境 ubuntu19 04 python3 x python包 requests bs4 beautifulsoup re urllib lxml os 下载方式 pip install 包名 ps 部分电脑未安
  • 牛顿柯特斯公式及复合形式、龙贝格求积公式,高斯勒让德求积公式

    数值积分的研究实现 牛顿柯特斯公式 柯特斯系数 各阶对应公式 当n 1时 对应的牛顿 柯特斯公式就是是梯形公式 当n 2时 对应的牛顿 柯特斯公式就是辛普森公式 当n 4时 对应的牛顿 柯特斯公式就是柯特斯公式 柯特斯系数表 核心代码实现
  • 从零开发区块链应用(十二)--以太坊余额查询

    文章目录 一 账户状态stateTrie 1 2 查询余额代码思路 1 3 余额查询流程 二 获取账户余额 2 1 代码解析 2 2 完整代码 三 获取账户代币余额 一 账户状态stateTrie Block Header Root 就是s
  • leetcode第五题-最长回文子字符串

    题目 给定一个字符串 s 找到 s 中最长的回文子串 你可以假设 s 的最大长度为 1000 示例 1 输入 babad 输出 bab 注意 aba 也是一个有效答案 示例 2 输入 cbbd 输出 bb 中心扩展算法 回文中心的两侧互为镜