暴力解法
枚举每一条子串,判断长度是否大于当前的最大长度和该子串是否是回文子串。
class Solution {
public String longestPalindrome(String s) {
int len = s.length();
if(len < 2){
return s;
}
int maxLen = 1;
int left = 0;
char[] arr = s.toCharArray();
for(int i = 0;i < len - 1;i++){
for(int j = i + 1;j < len;j++){
if(j - i + 1 > maxLen && check(arr,i,j)){ // 进行剪枝的操作,减少多余的比较次数,如果长度比当前最大长度还小,就不需要判断是否是回文子串了。
maxLen = j - i + 1;
left = i;
}
}
}
return s.substring(left,left + maxLen);
}
public boolean check(char[] arr,int left,int right){
boolean flag = true;
while(left < right){
if(arr[left] != arr[right]){
flag = false;
break;
}
left++;
right--;
}
return flag;
}
}