给你一个字符串 s,找到 s 中最长的回文子串。 1 <= s.length <= 1000 s 仅由数字和英文字母(大写和/或小写)组成 import java.lang.reflect.Array; import java.util.*; public class Main{ public static String longestPalindrome(String str){ int n=str.length(); if(n==0||n==1) return str; int [][] dp =new int[n][n]; int start=0; int max=1; for(int i=0;i<n;i++) { dp[i][i]=1; if(i<n-1 && str.toCharArray()[i]==str.toCharArray()[i+1]) { dp[i][i+1]=1; start=i; max=2; } } for(int len=3;len<=n;len++) //len表示检索的字符长度 { for(int i=0;i<n-len+1;i++) { int j=i+len-1; //终止字符位置 if(str.toCharArray()[i] == str.toCharArray()[j] && dp[i+1][j-1]==1) { dp[i][j]=1; start=i; max=len; } } } return str.substring(start,start+max); } public static void main(String args[]){ Scanner in=new Scanner(System.in); String str=in.next(); System.out.println(longestPalindrome(str)); } }