初步实现最长回文子串

来源:互联网 发布:linux 线程 sleep 编辑:程序博客网 时间:2024/06/18 07:08
#include <bits/stdc++.h>using namespace std;#define clr(ar,val) memset(ar,val,sizeof(ar))#define MAXN 110000char tmp[MAXN];char extmp[MAXN*2];int main(){        while(scanf("%s",tmp) !=EOF){    int len = strlen(tmp);    int rs = 0;     int j = 0;    clr(extmp,'\0');    for(int i=0;tmp[i] != '\0';++i){        extmp[j++] = '0';        extmp[j++] = tmp[i];      }    extmp[j]='0';        for(int i=0;i<=j;++i){        int start = i -1;        int end = i +1;        int l = 0;        while(start >=0 && end <= j){            if(extmp[start] == extmp[end])l++;            else break;            start--;            end++;        }        if(l > rs)rs = l;        }    printf("%d\n",rs);    }    return 0;} 

以上方法是处理了奇数字符串长度和偶数字符串长度的方法,也是manacher的初步实现的处理的方法。

以上代码思路是以某一个字符为中心,2边扩展,left--,right++ 直到出边界为止。

以上代码在ac中会超时,仅仅提供新手入门参考。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被别人举报赌博怎么办 涉黄刑事拘留怎么办取保候审 换了车牌保险怎么办 车辆转让后保险怎么办 立案后警察不管怎么办 打架后对方讹人怎么办 工商被恶意举报怎么办 店铺被工商举报怎么办 被买单侠恐吓怎么办? 团伙作案刑事拘留怎么办取保 欢乐麻将老输怎么办 回不了家怎么办身份证 没注意闯红灯了怎么办 摩托车被套牌了怎么办? 发现员工偷钱怎么办 盗窃刑事拘留7天怎么办 盗窃抓不到人怎么办 发现宿舍被盗后怎么办(  ) 发现宿舍被盗后怎么办() 回收到赃物电瓶怎么办 不知情买了赃物怎么办 盗窃单位要报警怎么办 上网吸烟被逮住怎么办 有人在微信骂我怎么办 网吧抽烟被拍照怎么办 诈骗被拘留该怎么办 行政拘留人跑了怎么办 车牌号被偷了怎么办 当员工提出辞职怎么办 老员工提出辞职怎么办 家人进看守所了怎么办 被贷款中介诈骗怎么办 喝完酒吐难受怎么办 犯罪嫌疑人死在看守所怎么办 犯罪嫌疑人死不承认怎么办 高血压进了看守所怎么办 看守所里被欺负怎么办 老师上课迟到了怎么办 艾滋病看守所不收怎么办 没能力偿还债务怎么办 监狱病人的癌症怎么办