最长回文子串
给你一个字符串
s
,找到 s
中最长的回文子串。示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s
仅由数字和英文字母组成
解决:暴力破解法(参考其他人的思路)
class Solution {
public String longestPalindrome(String s) {
int len = s.length();
int maxLength = 0;
String longestPalindrome = "";
for(int i=0;i<len;++i){
for(int j=i+maxLength;j<=len;++j){
String target = s.substring(i,j);
if(isLongestPalindrome(target) && target.length()>maxLength){
maxLength = target.length();
longestPalindrome = target;
};
}
}
return longestPalindrome;
}
/**
长度为奇数和偶数均满足这个情况:
长度为奇数:比较 (len/2)向下取整 次
长度为偶数:比较 (len/2) 次
*/
public static boolean isLongestPalindrome(String target){
int len = target.length();
for(int i = 0;i < len/2 ; ++i ){
if(target.charAt(i)!=target.charAt(len-i-1)){
return false;
}
}
return true;
}
}