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; 
        }
  • 相关阅读:
    顺序容器
    forward_list
    array
    第十一章 关联容器
    C++数组
    C++标准库算法
    第十章 泛型算法
    第九章 顺序容器
    操作系统概述
    文件输入输出
  • 原文地址:https://www.cnblogs.com/team42/p/6736711.html
Copyright © 2011-2022 走看看