最长回文子串

最长回文子串

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=117&tab=answerKey

题目描述

对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。
给定字符串A以及它的长度n,请返回最长回文子串的长度。

示例1

输入
"abc1234321ab",12
返回值
7

思路

1.转移方程容易想,但两个指针的移动方向容易出错。
2.应该A指针向右走,B指针从A开始向左走,目的是B指针扫过的范围A已经走过,才能执行动态规划。

code

import java.util.*;

public class Solution {
    public int getLongestPalindrome(String A, int n) {
        boolean [][]dp = new boolean[n+1][n+1];
        for(int i=0;i<n;i++)dp[i][i]=true;
        char []chs = A.toCharArray();
        int max = 0;
        for(int i=0;i<n;i++){
            for(int j=i;j>=0;j--){
                if(j+1==i){
                    dp[j][i] = chs[j]==chs[i];
                    if(i-j+1>max)max=i-j+1;
                }else if(j+1<i){
                    if(dp[j+1][i-1]==true && chs[j]==chs[i]){
                        dp[j][i] = true;
                        if(i-j+1>max)max=i-j+1;
                    }
                    else dp[j][i]=false;
                }
            }
        }
        return max;
    }
}
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务