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

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.


此题有四种解法:

1、蛮力,对每个子串进行回文判断,时间复杂度O(n^3),空间复杂度O(1),超时

//遍历取得每个字符
for(int i=0 ;i<len ; i++)
{
	//对每个字符去其后面的字串
	for(int j=0; j<...; j++)
	{
		//判断每个字串是否为回文
		if (isPalindromic())
		{
			...
		}
		
	}
}


2、动态规划
//DP
//思路:添加一个二维数组变量arr[i][j],如果s[i]和s[j]之间的字符组成的子串是回文,则arr[i][j]=true,否则arr[i][j]=false;
//DP最关键的就是设置好规则:若arr[i][j]=true,则arr[i+1][j-1]=true,那么,如果arr[i][j]=true,如果s[i-1]==[j+1],那么arr[i-1][j+1]也是回文串,于是形成递推公式
string longestPalindrome(string s) 
{
	int iBegin=0, iMaxLen=1;
	int iLen = s.length();
	bool arr[1001][1001] = {false};

	//对于s[i]来说,s[i]单个字符就是回文
	for (int i=0; i<iLen; i++)
		arr[i][i] = true;
	
	for (int i=0; i<iLen-1; i++)
	{
		//递推准备工作,判断某个字符与其下一个字符是否能组成回文
		if (s[i] == s[i+1])
		{
			arr[i][i+1] = true;
			iBegin = i;
			iMaxLen = 2;
		}
	}
	
	for (int i=2; i<=iLen; i++)			//回文可能出现的长度2->iLen
	{
		for (int j=0; j<iLen-i+1; j++)	//j为回文字串的开始位置
		{
			int k = j+i-1;				//k为回文字串的结束位置
			if (arr[j+1][k-1]==true && s[j]==s[k])
			{
				arr[j][k] = true;
				iMaxLen = i;
				iBegin = j;
			}
		}
	}

	return s.substr(iBegin, iMaxLen);
}

3、中间扩展法
就是对给定的字符串S,分别以该字符串S中的每一个字符C为中心,向两边扩展,记录下以字符C为中心的回文子串的长度。但是有一点需要注意的是字符串长度奇偶的问题。
时间复杂度O(n^2),空间复杂度O(1)
<span style="font-family: Arial, Helvetica, sans-serif;">string expands(string& s, int i, int j)</span>
{
	int iLen = s.length();
	while (i>=0 && j<=iLen-1 && s[i]==s[j])
	{
		i--;j++;
	}
	
	return s.substr(i+1, j-i-1);
}

string longestPalindrome(string s) 
{
	int iLen = s.length();
	if (iLen == 0)
	{
		return "";
	}
	
	string longest = s.substr(0, 1);
	for (int i=0; i<iLen; i++)
	{
		//回文长度为奇数的情况
		string s1 = expands(s, i, i);
		if (s1.length() > longest.length())
		{
			longest = s1;
		}

		//回文长度为偶数的情况
		string s2 = expands(s, i, i+1);
		if (s2.length() > longest.length())
		{
			longest= s2;
		}
	}
	
	return longest;
}


4、网上还有个更好的算法,时间复杂度O(n)

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】 一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~ 阅读详情

相关推荐

安卓app逆向破解脱壳教程

From:Hook 神器家族的 Frida 工具使用详解:https://blog.youkuaiyun.com/FlyPigYe/article/details/90258758 详解 Hook 框架 frida (信抢红包):https://www.freebuf.com/company-information/180480.html APP逆向神器之Frida【Android初级篇】:https://www.jianshu.com/p/2d755beb1c54 frida 官网文档:https://fr..

sinat_28371057的博客 2万+

c语言刷leetcode第五题Longest Palindromic Substring

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

guijiao1243的博客 948

Delta并联机构运动学正逆解:从理论建模到Matlab实战

本文深入解析了Delta并联机构运动学正逆解的核心原理与实战方法。通过几何建模,清晰阐述了其“逆解简单、正解复杂”的特性,并详细推导了基于一元二次方程的逆解解析算法与采用牛顿-拉弗森迭代法的正解数值算法。文章结合完整的Matlab代码实例,从符号推导到数值求解,提供了从理论到实践的完整实现路径,助力机器人开发者掌握Delta并联机构的运动学分析。

weixin_29096377的博客 432

[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的博客 643

了解随机振动疲劳分析中 Ansys nCode DesignLife 的平均应力校正

通过选择静态环境,我们可以将其结果视为疲劳计算的平均应力,如图 3 所示,因此从静态偏移载荷工况中提取的平均应力用于转移预测雨流计数中所有循环的平均值。您可以通过观看下面的教学视频获得宝贵的见解,该视频将指导您完成利用 Ansys nCode DesignLife 分析平均应力对随机振动载荷下结构的影响的过程。它基于 R 比率或平均应力水平。另一方面,平均应力校正可以帮助消除平均应力的负面影响,提高结果的保真度。Ansys nCode 提供先进的平均应力校正技术,使工程师能够考虑平均应力对疲劳寿命的影响。

jkh920184196的博客 1518

能碳双控| AIRIOT智慧能碳管理解决方案

基于AIRIOT打造的智慧能碳管理平台解决方案结合大数据、物联网、人工智能(AI)、数字孪生等新一代信息技术,通过整合碳达峰、碳中和、实时碳价、碳配额和碳资产等多个模块,为组织提供了全方位、灵活且智能的碳资产管理解决方案,有助于实现碳管理目标、提升可持续性,并适应碳市场的不断变化。

AIRIOT的博客 1808

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

游戏玩家和排行数据抓取:使用 Python 爬虫抓取游戏中的玩家排名、角色数据和战绩

对于游戏开发者、分析师和玩家本身来说,抓取游戏中的玩家排名、角色数据和战绩信息是一项至关重要的任务。Python提供了强大的爬虫库和数据处理工具,可以帮助我们高效地抓取和分析游戏数据,为游戏分析师、开发者以及玩家本身提供有价值的数据支持。通过本篇博客,我们学习了如何使用Python爬虫技术抓取游戏中的玩家排名、角色数据和战绩。本篇博客将详细介绍如何使用Python编写爬虫来抓取游戏中的玩家排名、角色数据和战绩,并结合最新的技术来实现高效的数据抓取与处理。为了方便后续的数据处理,我们将抓取的数据保存到。

2201_76125261的博客 944

[ 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

使用VNA(Vector Network Analyzer)对S参数进行去嵌(一)

传统上,RF和微波组件被设计成具有同轴接口的封装。通过连接一系列这些单独的同轴设备,可以容易地制造复杂的系统。使用使用类似同轴接口的标准测试设备可以很容易地测量这些部件和系统的性能。然而,现代系统需要更高水平的组件集成、更低的功耗和更低的制造成本。射频组件正在迅速从使用昂贵同轴接口的设计转向使用印刷电路板和表面贴装技术(SMT)的设计。传统的同轴接口甚至可以从最终产品中取消。这就给设计者留下了用需要同轴接口的测试设备测量这些射频和微波组件性能的问题。解决方案是使用连接同轴和非同轴传输线的测试夹具。

小孟同学的博客 1万+

claude code desktop中出现Doesn‘t look like an Anthropic model - expected a gateway model route 解决方案

本文主要介绍了claude code desktop中出现Doesn’t look like an Anthropic model - expected a gateway model route referencing an Anthropic model和Server is busy. Retrying的解决方案,希望能对使用claude code desktop的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 9万+

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的博客 327

手把手教你学Simulink——基于传统电网建模与稳定性分析的场景实例:基于同步发电机的单机无穷大系统建模与稳定性分析

本文详细介绍了使用MATLAB/Simulink进行单机无穷大系统(SMIB)建模与稳定性分析的方法。教程从系统结构设计入手,包含同步发电机、输电线路、无穷大母线等核心模块的建模步骤和参数配置示例。重点讲解了七个关键步骤:项目创建、模块配置、控制系统集成、负载添加(可选)以及仿真运行与结果分析,并提供了具体的MATLAB代码示例。最后通过性能评估指标(功角差、电压跌落、频率偏差)分析系统稳定性,为电力系统动态特性研究提供了实用指导,强调准确参数设置对仿真结果的重要性。

MHD0815的博客 298

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的博客 210

温度PID控制PLC程序

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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的博客 362

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode 5. Longest Palindromic Substring 题解

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

cannonjinx的博客 4595

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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 216

【leetCode】之 Longest Palindromic Substring

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

fmx的专栏 187

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中

灯火阑珊处 1584

【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: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. Exa...

但行好事,莫问前程 380
上一篇: LeetCode Longest Common Prefix
下一篇: Linux 中将VIM改装成强大C的IDE
FightForProgrammer
博客等级 码龄13年 239粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值