初步实现最长回文子串
来源:互联网 发布: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
- 初步实现最长回文子串
- Java 实现求最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 库索引
- LeetCode 155. Min Stack
- 真机调试步骤iOS
- Socket类的用法
- ios6新特性之下拉刷新UIRefreshControl
- 初步实现最长回文子串
- Ubuntu 14.04 安装配置 JDK8
- jquery事件委托
- ORACLE FOR UPDATE与FOR UPDATE OF区别
- Ubuntu下安装mysql5.6
- 检测用户拖动ScrollView速度
- ZOJ 3328(思维)
- Unity 3D——打包复用资源(.unitypackage文件)
- 多线程并发编程(一):传统多线程实现方式