zoukankan      html  css  js  c++  java
  • 最长回文子串

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

    思路:思路很直接,还是找对称轴,然后往两边扫,注意控制边界,得到最大值,对称轴也还是分两种,“aba”中'b'形和“abba”中'b'中间形。。

     public int getLongestPalindrome(String A, int n) {
               int max=0;
            for(int i=0;i<n-1;i++){
                if(A.charAt(i)==A.charAt(i+1)){
                    int temp=0;
                    int l=i,r=i+1;
                    while(l>=0&&r<n&&A.charAt(l)==A.charAt(r)){
                        l--;
                        r++;
                        temp=temp+2;
                    }
                    if(max<temp) max=temp;
                }
                if((i-1)>=0&&(i+1)<n&&(A.charAt(i-1)==A.charAt(i+1))){
                    int temp=1;
                    int l=i-1,r=i+1;
                    while(l>=0&&r<n&&A.charAt(l)==A.charAt(r)){
                        l--;
                        r++;
                        temp=temp+2;
                    }
                    if(max<temp) max=temp;
                }
                
            }
           
           return max; 
        }
  • 相关阅读:
    nginx缓存
    java 常用命令工具
    shell流程控制--循环语句
    Python 文档 涉及词汇
    python 学习网站
    python web入门程序
    编译安装 Python3.6.1
    正则表达式与grep
    编译安装 Nginx1.12.1
    查看进程号
  • 原文地址:https://www.cnblogs.com/team42/p/6736711.html
Copyright © 2011-2022 走看看