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.
Example 2:
Input: "cbbd"
Output: "bb"
问题很清晰易理解,就是找到从左读和从右读是相同的子串(简称 回文串)。
最近公司项目赶在发布前期,好久都没刷LeetCode了,偷点懒,直接上截图:
manacher 算法在网上有很多的实现,有的实现代码比较长,有的实现比较简短,上面的代码是我目前为止见过的最简洁的代码。看代码我看了很长时间都没有看懂,突然想到了麻省理工的<算法导论>公开课,该书作者查尔斯教授在介绍快排时,用笔在黑板上,通过简单的例子一步步描述快排的执行过程。其实manacher算法只要使用类似的方法,举个具体的例子一步步描述算法执行的过程,是很容易理解的。下面附加举例的图片,方便自己理解该算法的精要。