LeetCode——Longest Palindromic Substring

5. 最长镜像子串 [leetcode 5: Longest Palindromic Substring] 5. 最长镜像子串 [leetcode 5: Longest Palindromic Substring] 原题链接 https://leetcode.com/problems/longest-palindromic-substring 老王的解法链接 https://github.com/simplemain/leetcode/blob/master/5/analysis.md 难度 ★★☆☆☆... 阅读详情

LeetCode——Longest Palindromic Substring 

Leedcode 第五题:

题目如下:
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

题目翻译:

求解最大回文子串

关于其他时间复杂度的算法就不总结了,这里一起来看一看O(n)的算法——Manacher算法

关于Manacher算法:

http://www.felix021.com/blog/read.php?2040

http://blog.youkuaiyun.com/jarily/article/details/8630841


#include<iostream>
#include<string>
#include<vector>
using namespace std;
string longestPalindrome(string s) 
{
    	vector<char> cvec;
    	cvec.push_back('$');
    	cvec.push_back('#');
    	int i = 0;
    	for(;i<s.size();i++)
    	{
    		cvec.push_back(s[i]);
    		cvec.push_back('#');
    	}
        vector<int> ivec;
    	int id = 0;//记录每个串的中心
    	int max = 0;//每个中心扩展的最大值
    	for(i=0;i<cvec.size();i++)
    	{
    	    //if---else用于初始化记录每个回文子串的最大值的数组(这里用的vector容器)
    	    //其中每个i满足P[i] >= MIN(P[2 * id - i], mx - i),这里我们用p表示记录值的数组
    		if(max>i)
    		{
    			int temp = ivec[2*id-i]>max-i?max-i:ivec[2*id-i];
    			ivec.push_back(temp);
    		}
    		else
    			ivec.push_back(1);
    	    //while循环即用于处理p[i]> MIN(P[2 * id - i], mx - i)的情况
    		while(cvec[i+ivec[i]] == cvec[i-ivec[i]])
    		{
    			ivec[i] += 1;
    		}
    		if(ivec[i]+i>max)
    		{
    			max = ivec[i]+i;
    			id = i;
    		}
    	}
    	int mostlong = 0;//用于记录最大的值
    	int index = 0;
    	for(i=0;i<ivec.size();i++)
    	{
    		if(mostlong<ivec[i])
    		{
    			index = i;//记录最大的值的index
    			mostlong = ivec[i];
    		}
    	}
    	//cout<<mostlong<<" "<<index;
    	//分为奇数和偶数两种情况来返回要求的字符串
        if(index%2==0)
    	{
    		index = index/2-1;
    		int t = (mostlong-2)/2;
    		string str(s.begin()+index-t,s.begin()+index+t+1);
    		return str;
    	}
    	else
    	{
    		index /=2;
    		int t = (mostlong-1)/2;
    		string str(s.begin()+index-t,s.begin()+index+t);
    		return str;
    	}
}
int main()
{
	string s = "cabab";
	cout<<longestPalindrome(s);
	return 0;
}



3D Slicer:从入门到精通(二)——入门指南 本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和快速开始使用基本功能,以及在哪里找到更多信息。 阅读详情

相关推荐

CANOE仿真someip报文配置说明

利用canoe测试车辆控制器someip报文收发的步骤

AUTOSAR架构汽车软件开发 1万+

LeetCode Longest Palindromic Substring

找到一个字符串的最长回文子字符串,该字符串长度不超过1000,且只有唯一一个最长回文子串。

DRFish 685

正交试验-方差分析-数据展现形式

方差分析(ANOVA, Analysis of Variance)用于比较多个组之间的均值差异,确定因素对响应变量的显著性影响。示例分析。

m0_58326994的博客 1969

c语言刷leetcode第五题Longest Palindromic Substring

近日要找实习,需要练习一下算法,于是准备刷题。用的是leetcode。但是刷了一段时间,就发现之前自己之前刷的题目的思路不是很清晰了,于是在这里记录一下自己的思路和代码,以供之后复习理解。 第五题Longest Palindromic Substring第五题Longest Palindromic Substring题干: Given a string s, find the longest

guijiao1243的博客 948

CGAL-5.6的安装与编译(Win10+vs2022+CGAL-5.6+Boost1.82.0)

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。CGAL5.6。

baidu_34931359的博客 3902

攻击时间控制的动态逆三维制导律(源代码)

%参考文献:《攻击时间控制的动态逆三维制导律》,哈尔滨工程大学学报,2010 %编程难点:视线坐标系与参考坐标系间的转换关系 一、采用本文方法结果 二、偏航通道采用增广比例导引律

算法小站 2393

[Leetcode] 5. Longest Palindromic Substring 和 [Leetcode] 516. Longest Palindromic Subsequence 最长回文子序

目录 1、[Leetcode] 5. Longest Palindromic Substring (1)、问题描述 (2)、思路分析 (3)、Java代码 2、[Leetcode] 516. Longest Palindromic Subsequence (1)、 问题描述 ​​​​​​ (2)、 思路分析 (3)、 Java代码 1、[Leetcode] 5. Longe...

qq_29545781的博客 647

网闸的基本配置

本文详细介绍了网闸的基本配置流程,包括物理连接与初始化、网络基础配置、核心数据交换策略配置、安全增强配置、管理与运维以及测试验证等关键步骤。网闸通过在物理隔离环境下建立"数据摆渡通道",实现特定业务数据的安全交换。配置时应遵循最小化、单向化、内容控制和审计原则,确保只开放必要通道,优先采用单向传输,进行内容安全检查并记录操作日志。不同厂商网闸的配置界面可能不同,但核心逻辑是相通的。

qq_39980997的博客 1839

LeetCode力扣之 Longest Palindromic Substring

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: "babad" Output: "bab" Note: "aba" is also a valid answer.  Example:I...

LeeWei 147

RK3588开发笔记-Buildroot编译host-nodejs报错解决ModuleNotFoundError: No module named ‘_bz2‘

在RK3588的开发过程中,使用Buildroot进行系统的构建和编译是一个常见的选择。然而,在编译host-nodejs的过程中,有时会遇到报错信息提示。这个错误通常是由于Python环境中缺少相应的模块导致的。以下将记录我解决这个问题的过程。。在RK3588的开发过程中,使用Buildroot编译host-nodejs时遇到的错误,通常是由于缺少相应的Python模块导致的。通过配置buildroot pythong bzip2开发库并重新编译,可以解决这个问题。

flypig has a dream! 898

目前固态激光雷达在机器人领域的应用难点汇总

固态激光雷达在机器人领域面临性能与成本的双重挑战:探测性能上,动态范围不足(60-80dB)导致高/低反射物体识别困难,近距盲区(30-50cm)与长距精度(±3cm)矛盾突出;结构上视场角与点云密度难以平衡,多雷达拼接又带来同步误差。成本方面,核心元件(SPAD/OPA芯片)良率低(<50%)、校准工序复杂,单机成本超200美元。环境适应性上,粉尘附着、振动偏移(±2°)和光衰(1万小时衰减15%)制约可靠性。

start_up_go的博客 481

[ LeetCode ] 5. Longest Palindromic Substring (C++ & Python)

题目: 5. Longest Palindromic Substring Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" No...

xn's blog 555

YOLOv26详解 | 一文带你从代码角度深入理解ultralytics最新作品yolov26的创新 | 训练、推理、验证、导出 (附网络结构图PPT可用,全网最全)

YOLOv26带来多项创新:1)采用双检测头机制(One-to-Many和One-to-One)实现端到端无NMS推理;2)移除DFL简化边界框回归;3)引入ProgLoss+STAL优化小目标检测;4)使用MuSGD优化器提升训练稳定性。网络结构方面,SPPF模块增加shortcut连接,并在C3k2中引入PSABlock注意力机制。该版本更注重实际部署,简化了推理流程,提升硬件兼容性。教程涵盖模型训练、验证、推理及导出全流程,支持多种格式转换如ONNX、TensorRT等,适合工业应用场景。

Snu77的博客 4063

LeetCode 刷题记录 5. Longest Palindromic Substring

题目: Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: “babad” Output: “bab” Note: “aba” is also a valid answer. Exam...

dldldl1994的博客 328

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode 5 longest-palindromic-substring题解

LeetCode longest-palindromic-substring题解 题目链接 飞鱼决定开始每天保底五题(except Hard) 粗爆动态规划 (fast than 25%) 思路 主要就是挖掘前提条件: 1、单个字符必然回文 2、两个字符当且仅当他们相同时回文 其次是关联: 如果区间[i, j]是回文,当且仅当[ i+1, j-1]是回文 and s[i] == s[j] 然后再...

qq_42308861的博客 212

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Leetcode 5.Longest Palindromic Substring

从这个月开始刷leetcode的题,由于水平有限,欢迎交流和提宝贵的意见。下面是我对 5.Longest Palindromic Substring 的实现。char *longestPalindrome(char *s) { unsigned long len; int count; int start,end; int l,r; int max;

WolfgangBai的博客 365

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode 5. Longest Palindromic Substring 题解

本题是动态规划的经典问题,主要考察对状态定义和状态转移方程的理解。通过动态规划或中心扩展法,我们可以高效地找到最长的回文子串。动态规划的核心思想是:通过填充一个二维表格,记录每个子串是否是回文串。中心扩展法的核心思想是:遍历每个字符作为回文串的中心,向两边扩展,找到最长的回文串。在实际应用中,中心扩展法通常更受欢迎,因为它的空间复杂度更低,而且代码更简洁易懂。这种方法不仅适用于最长回文子串问题,还可以应用于许多其他需要处理回文串的问题。掌握这些方法,对于解决这类问题非常重要。

cannonjinx的博客 4595

LeetCode算法入门- Longest Palindromic Substring-day5

LeetCode算法入门- Longest Palindromic Substring-day5 Longest Palindromic Substring Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Examp...

hongjie_lin 217

LeetCode OJ 之 Longest Palindromic Substring (最长回文子串)

题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 给定字符串S,找出S中

灯火阑珊处 1585

【leetCode】之 Longest Palindromic Substring

使用方法:Manacher方法(参考博客中叫做——马拉车算法,很幽默的博主。。) 参考博客:https://blog.youkuaiyun.com/HappyRocking/article/details/82527217 https://blog.youkuaiyun.com/HappyRocking/article/details/82622881 在这里鸣谢此博主,讲的通俗...

fmx的专栏 187

【Leetcode】Longest Palindromic Substring

题目链接:https://leetcode.com/problems/longest-palindromic-substring/ 题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and

业精于勤,荒于嬉 3159

LeetCode-Longest Palindromic Substring

文章目录LeetCode-Longest Palindromic Substring题目描述思路分析C++实现Scala实现 版权声明:本文为博主原创文章,转载请注明原文出处! 写作时间:2019-02-10 00:04:34 LeetCode-Longest Palindromic Substring 题目描述 LeetCode第5道题目:5. Longest Palindromic Subst...

给永远比拿愉快 802

leetcode Longest Palindromic Substring

题目Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 题目来源:https://leetcode.c

不积跬步,无以至千里 1733

[leetcode] Longest Palindromic Substring 多种解法

很经典的题目,求字符串中的最长回文子串。 (1)最朴素的解法 ---暴力 复杂度O(N³) 这也是最容易想到的方法,最外层循环枚举起点i,第二层循环从i+1开始向后枚举,第三层判断是不是回文串。最后取最长子串的返回。 代码比较简单,这里没有列出。 (2)中心扩展法。复杂度O(N²) 枚举每一个字符作为中心点向左右扩展。但是这里要注意,对于每一次扩展要分奇偶两种情况。否则可能会漏掉情况。

NK_test的博客 2251

[LeetCode] Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 解题思路 网上有一种思路是说先得到输入字符

楚兴 1287

leetcode力扣刷题报告 5 Longest Palindromic Substring 最长回文子串

动态规划 leetcode解题

weixin_41147129的博客 181
上一篇: LeetCode——Median of Two Sorted Arrays
下一篇: LeetCode——Reverse Integer
cassiePython
博客等级 码龄12年 303粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值