Leetcode 5. 最长回文子串
Posted 自行车在路上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 5. 最长回文子串相关的知识,希望对你有一定的参考价值。
写下leetCode,每天一道,带上图,题目来源leetCode
题目-5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。
图-暴力破解
将所有子串循环暴力破解出来,过程中记录最长的的字串
图-动态规划
待续
图-中心拓展
待续
代码
暴力破解
public String longestPalindrome(String s) {
int len = s.length();
if (len < 2) {
return s;
}
int maxLen = 1;
String res = s.substring(0, 1);
// 枚举所有长度大于等于 2 的子串
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (j - i + 1 > maxLen && valid(s, i, j)) {
maxLen = j - i + 1;
res = s.substring(i, j + 1);
}
}
}
return res;
}
private boolean valid(String s, int left, int right) {
// 验证子串 s[left, right] 是否为回文串
while (left < right) {
if (s.charAt(left) != s.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
时间复杂度:,O(N^3)
空间复杂度:O(1)
动态规划
待续
中心拓展
待续
demo下载路径
参考
出处
以上是关于Leetcode 5. 最长回文子串的主要内容,如果未能解决你的问题,请参考以下文章