LeetCode 5. 最长回文子串
- 题目描述
- 一、解题关键词
- 二、解题报告
- 1.思路分析
- 2.时间复杂度
- 3.代码示例
- 2.知识点
- 总结
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
最长回文子串
一、解题关键词
二、解题报告
1.思路分析
2.时间复杂度
3.代码示例
tips:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
class Solution {
public String longestPalindrome(String s) {
int len = s.length();
if(len < 2){return s;}
//回文 量头相等 字符自身回文
int maxLen = 1;
int begin = 0;
boolean [][] dp = new boolean[len][len];
for(int i = 0;i < len; i++){
dp[i][i] = true;
}
char[] charArray = s.toCharArray();
for(int j = 1;j < len;j++){
for(int i = 0 ; i < j;i++){
if(charArray[i] != charArray[j]){
dp[i][j] = false;
}else{
if(j - i < 3){
dp[i][j] = true;
}else{
dp[i][j] = dp[i + 1][j - 1];
}
}
if(dp[i][j] && j - i + 1 > maxLen){
maxLen = j - i + 1;
begin = i;
}
}
}
return s.substring(begin,begin + maxLen);
}
}
2.知识点
动态规划
总结
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)