最长回文子串

本文介绍了如何求解最长回文子串问题,包括穷举法、动态规划和分治法三种策略。动态规划是优化过的解决方案,时间复杂度为(O(n^2)),而分治法以每个字符为中心轴寻找回文串,总复杂度为(O(n^2))。文章提供了相关参考资料供进一步学习。
摘要由CSDN通过智能技术生成

1. 问题描述

回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的;简而言之,回文串是左右对称的。所谓最长回文子串问题,是指对于一个给定的母串

abcdedcb

从所有的为回文串的子串a, ded, cdedc, bcdecdb中;找出最长的那一个bcdecdb。但是该如何判断子串是否回文然后找出最长者呢?正好Leetcode也有一个5. longest-palindromic-substring问题,可以用来做代码测试。

2. 求解


2016.12.28更新

将原来的C代码替换为Go 1.7,修复了评论中所指出的动态规划bug。


穷举法

最容易想到的是穷举法,穷举所有子串,找出是回文串的子串,统计出最长的那一个。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅唱书令

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值