zoukankan      html  css  js  c++  java
  • 最长回文子串(暴力破解)

    题目描述

    给定一个字符串 s,找到 s 中最长的回文子串。

    解题思路

    此解题方法为暴力破解,通过找到一个字符,然后分别向两边扩展,直到找到最长的回文子串。

    char * longestPalindrome(char * s){
        int length=strlen(s); //字符串长度
        int start=0,len=0;//记录初始位置和子串长度
        /**
        长度为奇数时
        */
        for(int i=0;i<length;++i){
            int left=i-1,right=i+1;
            while(left>=0 && right<length && s[left]==s[right]){
                left--;right++;
            }
            if(right-left-1>len){
                start=left+1;
                len=right-left-1;
            }
        }
        /**
        长度为偶数时
        */
        for(int i=0;i<length;++i){
            int left=i,right=i+1;
            while(left>=0 && right<length && s[left]==s[right]){
                left--;right++;
            }
            if(right-left-1>len){
                start=left+1;
                len=right-left-1;
            }
        }
        s[start+len]='';  //
        return s+start;
    
    }

    ////才发现一个关于字符串的问题,如果一个长度为10的字符串str,例如:“0123456789”,如果将s[5]='',再返回s+2,那么这个返回的字符串就会变成“234”

  • 相关阅读:
    随笔一
    UISegmentedControl
    adobe as3 samples
    将flash的文字转换为flash可用的矢量图
    让drawRoundRect抗锯齿的最简单的方法
    AS3和FLEX优化技巧
    Spark project 超级强大的AS3库
    API汇集
    一个as3开发人员的话
    好公司职位要求
  • 原文地址:https://www.cnblogs.com/laysfq/p/12930140.html
Copyright © 2011-2022 走看看