给你一个字符串s,找出s中最长的回文子串。示例1:输入:s="babad"输出:"bab"解释:"aba"也是符合题意的答案。例2:输入:s="cbbd"输出:"bb"例3:输入:s="a"输出:"a"例4:输入:s="ac"输出:"a"解题思路运用动态规划,状态转移方程如下:dp[i][j]=(s[i]==s[j])&&(i-j<3||dp[j+1][i-1])如果出现s[i]==s[j],如果i-j<3或者dp[j+1][i-1]也是回文,那么从j到i的字符串也是回文。i-j<3对应三种情况,第一种是三个字符,首末相同,不管中间是什么字符,都是回文串,第二种是两个字符,都一样,显然也是一个回文字符串,第三个只有一个字符,一个字符本身也是一个回文Java实现:classSolution{publicStringlongestPalindrome(Strings){if(s==null||s.length()==0)return;intlen=s.length();int开始=0;intmaxLen=1;布尔[][]dp=新布尔[len][len];for(inti=0;i
