Leetcode:最长回文子串

题目链接:5. 最长回文子串 - 力扣(LeetCode)

普通版本(暴力枚举)

解题关键:

1、记录最长回文字串的长度和起始字符的下标

2、判断回文字串的逻辑与整体逻辑分离

3、先确定寻找回文字串的边界范围后从两边向中间寻找

class Solution {
public://从两侧向中间寻找string longestPalindrome(string s) {int sz = s.size();if(sz < 2) return s;int lengthMax =  1;//当前最长回文字串的起始长度int begin = 0;//当前最长回文字串的起始下标for(int i = 0;i<sz-1;i++)//回文不可能到数组末尾,因为如果这样的话{for(int j = i + 1;j<sz ;j++){//判断[i,j]范围内的子串是不是回文子串,如果是,且回文字串的长度大于之前记录的范围内的子串是不是回文子串,如果是,且回文字串的长度大于之前记录的lengthhMax,就更新lengthMax和回文子串的下标i,就更新lengthMax和回文子串的下标iif(j - i + 1 > lengthMax  && judgeLPS(s,i,j))//LPS是最长回文子串Longest palindromic substring的缩写{lengthMax = j - i + 1;begin = i; }}}return s.substr(begin,lengthMax);
}private:bool judgeLPS(const string& s,int left,int right)//防止字符串过长导致的超出内存限制问题,传引用传参进行判断{while(left < right){if(s[left] != s[right]){return false;}else{left++;right--;}}return true;//在[i,j]范围内都相同了就返回真}
};

时间复杂度:O(N^3)(两层for循环中还有一个while)

优化版本(中心扩散,待补充)

优化版本(动态规划,待补充)

~over~

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

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

相关文章

解析Java中1000个常用类:CharSequence类,你学会了吗?

在 Java 编程中,字符串操作是最常见的任务之一。为了提供一种灵活且统一的方式来处理不同类型的字符序列,Java 引入了 CharSequence 接口。 通过实现 CharSequence 接口,各种字符序列类可以提供一致的 API,增强了代码的灵活性和可扩展性。 本文将深入探讨 CharSequence 接…

NBM 算法【python,算法,机器学习】

朴素贝叶斯法&#xff08;Naive Bayes model&#xff09;是基于贝叶斯定理与特征条件独立假设的分类方法。 贝叶斯定理 P ( A ∣ B ) P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A|B)\frac{P(B|A) * P(A)}{P(B)} P(A∣B)P(B)P(B∣A)∗P(A)​ 其中A表示分类&#xff0c;B表示属性&…

Unity中的MVC框架

基本概念 MVC全名是Model View Controller 是模型(model)-视图(view)-控制器(controller)的缩写 是一种软件设计规范&#xff0c;用一种业务逻辑、数据、界面显示 分离的方法组织代码 将业务逻辑聚集到一个部件里面&#xff0c;在改进和个性化定制界面及用户交互的同时&#x…

【嵌入式硬件】DRV8874电机驱动

目录 1 芯片介绍 1.1 特性简介 1.2 引脚配置 1.3 最佳运行条件 2 详细说明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 独立半桥控制模式 2.2 电流感测和调节 2.2.1 IPROPI电流感测 2.2.2 IMODE电流调节 3.应用 3.1设计要求 3.2 设计…

AI换脸FaceFusion一键云部署指南

大家好&#xff0c;从我开始分享到现在&#xff0c;收到很多朋友的反馈说配置很低玩不了AI。本篇是一个云端部署AI项目的指南&#xff0c;帮助大家在云端进行AI项目的部署。我会从云平台的选择、代码部署、保存镜像几个方面进行详细的介绍。没有代码基础的小白也不用担心&#…

exe4j innosetup

exe4j:jdk: 打包时&#xff1a;需要的文件最好放到单独的一个文件夹下&#xff0c;主机安装32位jdk,exe4j用32位的。 附带jre: jre用32位的&#xff08;jdk下的jre&#xff09;可使用X86,X64.用相对路径。 只打64位时&#xff0c;需要选择32-bit or 64-bit (generate 64…

乐观锁 or 悲观锁 你怎么选?

你有没有听过这样一句话&#xff1a;悲观者正确&#xff0c;乐观者成功​。那么今天我来分享下什么是乐观锁​和悲观锁。 乐观锁和悲观锁有什么区别&#xff0c;它们什么场景会用 乐观锁 乐观锁基于这样的假设&#xff1a;多个事务在同一时间对同一数据对象进行操作的可能性很…

fps游戏中如何将矩阵转换为二维屏幕上的矩形坐标

fps游戏中如何将矩阵转换为二维屏幕上的矩形坐标 matrix[4][4]: 4x4 矩阵&#xff0c;通常用于3D变换&#xff08;如模型视图投影矩阵&#xff09;。 float* location: 一个指向位置坐标的指针&#xff0c;表示要转换的3D位置。 int Window_w, int Window_h: 窗口的宽度和高…

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口&#xff0c;但让实现这个接口的类来决定实例…

Python导出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云链-…

基于强化学习的控制率参数自主寻优

1.介绍 针对控制建模与设计场景中控制参数难以确定的普遍问题&#xff0c;提出了一种基于强化学习的控制律参数自主优化解决方案。该方案以客户设计的控制律模型为基础&#xff0c;根据自定义的控制性能指标&#xff0c;自主搜索并确定最优的、可状态依赖的控制参数组合。 可…

unity打包的WebGL部署到IIS问题

部署之后会出错&#xff0c;我遇到的有以下几种&#xff1b; 进度条卡住不动 明明已经部署到了IIS上&#xff0c;为什么浏览网页的时候还是过不去或者直接报错。 进度条卡住不动的问题其实就是wasm和data的错误。 此时在浏览器上按F12进入开发者模式查看错误&#xff08;下图…

前端知识点杂记

本文章用于记录前端学习中遇到的琐碎问题及解决方法&#xff0c;欢迎大家一起学习补充~ 前端如何获取UUID发送至后端&#xff1f; 1. 命令行下载uuid库 npm install uuid 2. 工程导入uuid库 import { v4 as uuidv4 } from "uuid"; 3. 使用方法生成uuid实例 co…

付费工具逻辑

1.付费推广目的&#xff1a; 传播信息心理暗示&#xff1b;扩大销售&#xff0c;指导消费&#xff1b;树立形象&#xff0c;塑道品牌&#xff1b; 2.付费和免费广告&#xff1a; 付费主要为了增加曝光&#xff1b;免费广告一般比付费广告转化率高&#xff1b; 3.平台广告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌浏览器开启Gemini Nano模型

前提 确保您的操作系统语言设置为英语(美国) 可能还需要将 Chrome 浏览器的语言更改为英语(美国)。 下载dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:确认您的版本高于 127.0.6512.0。 其中一个Chrome版本不行就切换另外一个版本 绕过性能检查 Tab输入: …

中国美业元宇宙-探索美容行业的未来

随着科技的不断进步和数字化转型的深入&#xff0c;元宇宙作为一种全新的虚拟现实交互平台&#xff0c;正逐渐成为推动多个行业革新的重要力量。在这种背景下&#xff0c;中国美业也在积极拥抱元宇宙&#xff0c;希望通过这一新兴技术为传统美容行业带来创新与发展。 #### 中国…

结构体相关习题的补充

结构体相关习题的补充 题目1&#xff1a; 如有以下代码&#xff1a; struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是&#xff1a;( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

正邦科技(day4)

烧录 一、烧录固件二、 通讯模块升级1&#xff1a;USB的方式升级固件2&#xff1a;通过mqtt的方式升级固件3&#xff1a;切换环境 三、 烧录WiFi1&#xff1a;短接2&#xff1a;烧录脚本 设备注意事项&#xff1a; 第一种方式&#xff1a;通信模组和MCU都可以统一烧录BoodLoade…

Oracle Hint /*+APPEND*/插入性能总结

oracle append用法 Oracle中的APPEND用法主要用于提高数据插入的效率。 基本用法&#xff1a;在使用了APPEND选项后&#xff0c;插入数据会直接加到表的最后面&#xff0c;而不会在表的空闲块中插入数据。这种做法不需要寻找freelist中的free block&#xff0c;从而避免了在…