初步实现最长回文子串
2016-04-19 12:00
232 查看
#include <bits/stdc++.h> using namespace std; #define clr(ar,val) memset(ar,val,sizeof(ar)) #define MAXN 110000 char 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中会超时,仅仅提供新手入门参考。
相关文章推荐
- 地图的集成
- android.content.res.Resources$NotFoundException
- 数组-冒泡排序
- 五月份--到处溜达
- Response.Redirect(),Server.Transfer(),Server.Execute()的区别
- SurfaceView取景拍照
- 计算机图形学(二)输出图元_5_帧缓存值的装载
- Tomcat、MySQL注意
- C#中方法参数的类型
- 纪念
- Ubuntu下安装mysql5.6
- LeetCode_OJ【68】Text Justification
- 在 Windows 安裝 PHP PEAR
- hdu-5000 Clone(dp)
- ThinkPHP中order()使用方法详解
- Enjoy $10 cash coupon AF10 for cheapest runescape 2007 gold buying on Rsorder 4.18-4.26
- Ubuntu 14.04 安装配置 JDK8
- jquery事件委托
- ZOJ 3326(E)模拟
- Ubuntu Broadcom无线网卡驱动安装