题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

import java.util.*;

public class Solution {
       public int getLongestPalindrome(String A, int n) {
        if (n < 2) return A.length();
         int maxLen = 0;
           boolean[][] dp =new boolean[n][n];
           for(int right =1; right<n;right ++){
               for(int left =0;left <= right;left ++ ){
                   if(A.charAt(left) != A.charAt(right))
                       continue;
                   if(left ==right){
                       dp[left][right] = true;
                   }else if(right - left <=2){
                       dp[left][right] =true;
                   }else{
                       dp[left][right] = dp[left+1][right-1];
                   }
                   if(dp[left][right] && right - left +1 > maxLen){
                       maxLen = right -left +1;
                   }
               }
           }
               return maxLen;
            }
       }
全部评论

相关推荐

01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务