力扣-最长回文子串
目录
🔗 题目链接
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s =
输出:
解释:
"babad"输出:
"bab"解释:
"aba" 同样是符合题意的答案。
示例 2:
输入:s =
输出:
"cbbd"输出:
"bb"提示:
- $1 <= s.length <= 1000$
s仅由数字和英文字母组成
思路一
从中心向两端扩散的双指针1
如果回文串的长度为奇数,则它有一个中心字符;如果回文串的长度为偶数,则可以认为它有两个中心字符。
那么可以事先写一个函数,在 s 中寻找以 s[l] 和 s[r] 为中心的最长回文串(即 s[l]==s[r],然后在不越界的前提下左移 l,右移 r),这样,如果输入相同的 l 和 r,就相当于寻找长度为奇数的回文串,如果输入相邻的 l 和 r,则相当于寻找长度为偶数的回文串:
|
|
那么求最长回文串,就相当于是:
|
|
代码:
|
|