1.暴力解法
暴力求解,列举所有的子串,判断是否为回文串,保存最长的回文串。
package LeetCode;
import java.lang.reflect.Array;
import java.util.Arrays;
class Solution{
public static void main(String[] args) {
String str="addabb";
String result= longestPalindrome(str);
System.out.println(result);
}
public static boolean isPalindromic(String s){
int len=s.length();
for(int i=0;i<len/2;i++){
if(s.charAt(i)!=s.charAt(len-i-1)){ //回文数是对称的,所以首尾是一样的
return false;
}
}
return true;
}
public static String longestPalindrome(String s){
String ans=""; //字符串初始化
int max=0; //长度初始化
int len=s.length();
for (int i = 0; i < len; i++) {
for (int j = i + 1; j <= len; j++) {
String test = s.substring(i, j); //substring截取i,j之间的字符串
if (isPalindromic(test) && test.length() > max) { //test.length() > max 长度大于初始max,才比较,小于max无需比较
ans = s.substring(i, j);
max = Math.max(max, ans.length());
}
}
}
return ans;
}
}