leetcode5_最长回文字串

题目链接:

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

思路分析:

s长度最大是1000,考虑枚举,枚举每一个s[i],以s[i]为中心点向两侧枚举,可以发现:
当枚举的区间长度为奇数时:只需要满足中心点两侧的字符相等即为回文串,此时两个指针直接赋值`i-1``i+1`即可
当枚举的区间长度为偶数时,同理,只需要将枚举的起始位置中的两个指针有一个从当前s[i]开始即可(具体细节看代码)

代码1:c++

class Solution {
public:string longestPalindrome(string s) {string res = "";for(int i = 0;i < s.size();i++) {//长度为奇数 以i为中心点 l r直接赋值中心点的两侧开始移动int l = i - 1, r = i + 1;//以s[i]为中点 l r向两侧移动 直到s[l]和s[r]不相等while(l >= 0 && r < s.size() && s[l] == s[r])l--,r++;//发现区间长度大于当前res的长度则更新if(res.size() < r - l - 1)//这里的substr用法 第一个参数为s的截取起始位置 第二个参数是截取的长度res = s.substr(l + 1,r - l - 1);//长度为偶数 此时左侧移动点从i开始 右侧从i+1开始l = i, r = i + 1;while(l >= 0 && r < s.size() && s[l] == s[r])l--,r++;if(res.size() < r - l - 1)res = s.substr(l + 1,r - l - 1);}return res;}
};

代码2:java


class Solution {public String longestPalindrome(String s) {String res = "";for(int i = 0;i < s.length();i++) {int l = i - 1, r = i + 1;while(l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)){l--;r++;}if(res.length() < r - l - 1)res = s.substring(l + 1, r);l = i;r = i + 1;while(l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {l--;r++;}if(res.length() < r - l - 1)res = s.substring(l + 1, r);}return res;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端工程化面试题 | 10.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

赋能AI原生应用开发:百度智能云千帆AppBuilder正式开放服务

为满足企业敏捷、高效地进行AI原生应用开发的需求&#xff0c;降低AI原生应用开发门槛&#xff0c;百度智能云千帆AppBuilder正式开放服务。戳我体验 AppBuilder将大模型开发AI原生应用的常见模式、工具、流程&#xff0c;沉淀成一个工作台&#xff0c;帮助开发者聚焦业务本身…

【网络安全】什么样的人适合学?该怎么学?

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a; 什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 当然&#xff0c;产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级…

C++初阶:容器适配器介绍、stack和queue常用接口详解及模拟实现

介绍完了list类的相关内容后&#xff1a;C初阶&#xff1a;适合新手的手撕list&#xff08;模拟实现list&#xff09; 接下来进入新的篇章&#xff0c;stack和queue的介绍以及模拟&#xff1a; 文章目录 1.stack的初步介绍2.stack的使用3.queue的初步介绍4.queue的使用5.容器适…

10个常考的前端手写题

1. 实现一个简单的 JavaScript 函数&#xff0c;用于判断一个对象是否为空&#xff1a; 判断对象是否为空的函数 这个函数通过遍历对象的所有属性来检查是否有任何实际定义的键。如果在循环中找到了一个键&#xff0c;则立即返回false&#xff0c;表示对象不为空。如果没有找到…

rust函数 stuct struct方法 关联函数

本文结合2个代码实例主要介绍了rust函数定义方法&#xff0c;struct结构体定义、struct方法及关联函数等相关基础知识。 代码1&#xff1a; main.rc #[derive(Debug)]//定义一个结构体 struct Ellipse {max_semi_axis: u32,min_semi_axis: u32, }fn main() {//椭圆&#xff0…

micro-app以UMD js链接方式引入使用

npm 下载好micro-zoe/micro-app后&#xff0c;找到index.umd.js&#xff1a; 新建一个测试html&#xff0c;引入并使用&#xff1a; 参考&#xff1a; 微组件实践 - 掘金

外汇110:外汇做空是什么意思?如何运作?一文读懂

外汇市场允许卖空&#xff0c;就像众多金融市场一样。但什么是卖空呢&#xff1f;如何外汇做空&#xff1f;在本文中&#xff0c;我们将讨论如何做空货币。什么是外汇做空&#xff1f; 外汇做空&#xff08;Short Selling&#xff09;是外汇市场上的一种投资方式。它指的是投资…

聊聊Java那些事

本系列文章简介&#xff1a; Java是一种广泛使用的高级编程语言&#xff0c;它是一种面向对象的语言&#xff0c;具有简单、可移植、安全和高性能等特点。Java在各个领域都有广泛的应用&#xff0c;包括企业级应用程序开发、移动应用程序开发、嵌入式系统开发等。本系列文章旨在…

深度学习系列58:大模型训练和压缩

1. 大模型训练 1.1数据并行 1.2 模型并行 1.3 ZeRO 1.4 流水线并行 1.5 混合精度训练 1.6 offloading 把梯度放在cpu上保存和计算 1.7 overlapping 提前传输数据 1.8 checkpointing 中间线性层不保存&#xff0c;反向传播时再次重新计算 1.9 使用BMtrain 2. 大模型压…

蝶阀、球阀、阀门百科

一、D71X是蝶阀的型号其中D 就代表了蝶阀,7 代表是对夹式链接,1代表这个蝶阀是中线结构,x就是密封面材质为橡胶。结合起来D71X表示的就是手柄对夹中线蝶阀。 二、J41H-100C型号字母含义介绍 J41H-100C型号是德特森阀门常用的高压截止阀型号字母代表的意思是: J——代表阀门类…

windows下Oracle 11g的安装和配置教程的详细步骤

#### 1、下载Oracle软件 访问Oracle官方网站或者Oracle下载中心。在下载页面中找到适用于您操作系统的Oracle 11g软件。根据您的需求选择合适的版本&#xff0c;如“Oracle Database 11g Release 2 Express Edition for Windows x64”。点击下载并接受相关许可协议。 2、安装…

MCU中断控制

目录 一、中断相关基础知识 1、NVIC&#xff1a;嵌套向量中断控制器 2、可屏蔽中断和不可屏蔽中断的区别 3、中断优先级 4、常见特殊中断 二、中断相关寄存器 三、中断使用步骤&#xff1a; 一、中断相关基础知识 1、NVIC&#xff1a;嵌套向量中断控制器 (1) 它是内核的…

LVS/DR配置

实验环境: servera作为lvs服务器 serverc&#xff0c;serverd作为web服务器 一.配置serverc,serverd 对两台服务器做相同配置: 1.安装nginx服务:yum install nginx -y2.切换到nginx根目录cd /usr/share/nginx/html/3.将原来的index.html备份mv index.html index.html.bak4.输出…

Windows Server 2012 评估版和Windows Server 2019 评估版 升级为正式版(工作v笔记v分享)

Windows Server 2012 评估版和Windows Server 2019 评估版是微软提供的试用版本&#xff0c;可以免费下载和使用一段时间。当使用评估版时&#xff0c;可以在适当的时候将其升级为正式版&#xff0c;以便继续使用并享受完整的功能。 要将评估版升级为正式版&#xff0c;可以按…

基于ArcGIS Pro SDK的MVVM架构

示例结果展示 文件夹创建 相对于原始C#&#xff0c;少了Command文件夹里的类。该文件中的RelayCommand使用 ArcGIS.Desktop.Framework Properties属性配置&#xff0c;主要用于设置执行程序路径&#xff08;自带文件夹&#xff09; DarkImages用于存放深色图片&#xff08;自…

Rust 学习笔记 - 流程控制 与 Range 类型

前言 任何一门编程语言几乎都脱离不了&#xff1a;变量、基本类型、函数、注释、循环、条件判断&#xff0c;这是一门编程语言的语法基础&#xff0c;只有当掌握这些基础语法及概念才能更好的学习 Rust。 条件判断 if 表达式 if 语句在其他语言中很常见&#xff0c;这里不再…

面试经典150题【1-10】

文章目录 面试经典150题【1-10】88. 合并两个有序数组27.移除元素26.删除有序数组中的重复项80.删除有序数组中的重复项II169.多数元素189.轮转数组121.买卖股票的最佳时机1122. 买卖股票的最佳时机 II55.跳跃游戏![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ff…

nvm安装配置环境

前言 对于前端开发人员来说&#xff0c;多个项目可能用的不同的node版本&#xff0c;如何方便快速的转换版本&#xff0c;nvm版本管理工具的出现&#xff0c;解决这个问题。 实战 1. 搜索nvm版本&#xff0c;我用的1.1.2&#xff0c;下载后直接安装。 2.在d盘建立nvm空文件…

uniapp H5唤起手机App 中间下载页

我这里直接是打开中间下载页&#xff0c;在下载页判断手机是否已存在App&#xff0c;有则唤起App&#xff0c;没有则可点击下载按钮下载app。 唤起App的关键语句是&#xff1a;window.location.href scheme Scheme链接格式样式&#xff1a; [scheme]://[host]/[path]?[que…