题解 | #密码截取#

密码截取

http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        int n=s.length();
        if(n<2) {System.out.println(n);return;}
        
        boolean[][] dp=new boolean[n][n];
        for(int i=0;i<n;i++) dp[i][i]=true;
        
        int j,ans=0;
        for(int L=2;L<=n;L++){
            for(int i=0;i<n+1-L;i++){
                j=L+i-1;
                
                if(s.charAt(i)==s.charAt(j))
                    if(L<=3){
                    dp[i][j]=true;
                    }else dp[i][j]=dp[i+1][j-1]; 
                
                else dp[i][j]=false;
                
                if(dp[i][j]){
                    ans=Math.max(L,ans);
                }
            }
            
        }
        
        System.out.println(ans);
    }
}
全部评论
第七行你这么写的话,AB输出结果就是0,应该改成:if(n<=2) {System.out.println(1);return;}
点赞 回复 分享
发布于 2022-08-25 23:36 广东

相关推荐

09-10 15:05
已编辑
门头沟学院 游戏后端
点赞 评论 收藏
分享
牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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