力扣-最长回文子串
目录
🔗 题目链接
给你一个字符串 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
,则相当于寻找长度为偶数的回文串:
|
|
那么求最长回文串,就相当于是:
|
|
代码:
|
|