【Manacher】LeetCode-5. 最长回文子串
2024-01-02 11:51:53
5. 最长回文子串。
给你一个字符串 s,找到 s 中最长的回文子串。
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
算法分析
解题思路
数据范围比较小可以直接用迭代
- 以每个元素为中心点(奇数)向外遍历;
- 以每个元素为左端点(偶数),元素+ 1为右端点向外遍历;
class Solution {
public String longestPalindrome(String s) {
String res = "";
for (int i = 0; i < s.length(); i++) {
int l = i - 1, r = i + 1;
while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
l--;
r++;
}
if (res.length() < r - l - 1) res = s.substring(l + 1, r);
l = i;
r = i + 1;
while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
l--;
r++;
}
if (res.length() < r - l - 1) res = s.substring(l + 1, r);
}
return res;
}
}
复杂性分析
时间复杂度:O(n2)
空间复杂度:O(1)
文章来源:https://blog.csdn.net/xiaoxiawancsdn/article/details/135334906
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!