最长回文子串

最长回文子串

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=117&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

public int getLongestPalindrome(String A, int n) {
        // write code here
        int res = 1;
        //以每个点作为中心(奇数个为中心) 求回文子串 
        for(int i=0;i<A.length();i++){
            int temp=getLen(i,A);
            //System.out.println(temp);
            res = Math.max(res,temp);
        }
        return res;
    }
    private int getLen(int index,String A){
        //if(index==6)
        int max = 1;
        //偶数
        max = Math.max(l(index,A,0),max);
        if(index>0){
            //奇数
            max = Math.max(l(index,A,1)+1,max);
        }
        return max;
    }
    private int l(int index,String A,int flag){
        if(index+1>=A.length()) return 1;
        int left = index;
        //奇数个的时候需要-1
        if(flag==1){
            left = index-1;
        }
        int right = index+1;
        int i=0;
        int cnt=0;
        while(left-i>=0 && (right+i)<A.length()){
            if(A.charAt(left-i)==A.charAt(right+i)){
                i++;
                cnt++;
            }else break;
        }
        return cnt*2;
    }
全部评论

相关推荐

耀孝女:就是你排序挂了
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务