51nod 1088 最长回文子串 【中心拓展法/输出长度和路径】
输入Str(Str的长度 <= 1000)
输出最长回文子串的长度L。
daabaac
5 [代码]:
#include<bits/stdc++.h> using namespace std;
#define N 550
int mp[N][N];
int main()
{
string s;
cin>>s;
int n=s.size();
int res=; for(int i=; i<n; i++){ for(int j=;(i-j)>=&&(i+j)<n; j++){
if(s[i-j]!=s[i+j]) break;
res=max(res,*j+);
} for(int j=;(i-j)>=&&(i+j+)<n; j++){
if(s[i-j]!=s[i+j+]) break;
res=max(res,*j+);
}
}
printf("%d\n",res);
}
输出长度
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
#define N 5050
int main()
{
string s;
int pos[];
cin>>s;
int res = , st=, ed=;
int n = s.size();
for(int i=;i<n;++i)
pos[i]=i;
for(int i=; i<n; i++) {
for(int j= ;(i-j)>=&&(i+j)<n ;j++) {
if(s[i-j]!=s[i+j]) break;
if(*j+>res){
res=*j+;
st=pos[i-j];
ed=pos[i+j];
}
} for(int j= ;(i-j)>=&&(i+j+)<n ;j++) {
if(s[i-j]!=s[i+j+]) break;
if(*j+>res){
res=*j+;
st=pos[i-j];
ed=pos[i+j+];
}
}
}
for(int i=st; i<=ed; i++)
cout<<s[i];
cout<<endl;
return ;
}
输出子串
51nod 1088 最长回文子串 【中心拓展法/输出长度和路径】的更多相关文章
- 51nod 1088 最长回文子串
1088 最长回文子串 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一 ...
- (最长回文子串 线性DP) 51nod 1088 最长回文子串
输入一个字符串Str,输出Str里最长回文子串的长度. 回文串:指aba.abba.cccbccc.aaaa这种左右对称的字符串. 串的子串:一个串的子串指此(字符)串中连续的一部分字符构成的子(字符 ...
- 51NOD 1088 最长回文子串&1089 最长回文子串 V2(Manacher算法)
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. Input 输入Str(Str的长度 <= 1000(第二题要 ...
- 51Nod 1089 最长回文子串 V2 —— Manacher算法
题目链接:https://vjudge.net/problem/51Nod-1089 1089 最长回文子串 V2(Manacher算法) 基准时间限制:1 秒 空间限制:131072 KB 分值: ...
- 【LeetCode】最长回文子串-中心扩展法
[问题]给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 : 输入: "babad" 输出: "bab" 注意: ...
- 51nod 1089 最长回文子串 V2(Manacher算法)
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. 收起 输入 输入Str(Str的长度 <= 100000) ...
- 51nod(1089 最长回文子串 V2)(hash 加二分)
1089 最长回文子串 V2(Manacher算法) 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. 输入 ...
- 51nod 1089 最长回文子串 V2(Manacher算法)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 第1行:一个数T,表示后面用作输入 ...
- 51nod 1089最长回文子串V2 (manacher)
经典题 manacher是一种很神奇的算法, 算是动态规划的一种,不过利用的信息非常有效 #include <iostream> #include <cstdio> #incl ...
随机推荐
- 在WIN2008R2的IIS7环境下安装PHP5.6.15
1.下载PHP5.6.15 在http://windows.php.net/download页面中找到VC11 x64 Non Thread Safe下载ZIP版. 2.将下载的压缩包解压到D盘PHP ...
- Kafka 基础实战 :消费者和生产者实例
学习地址: http://www.jikexueyuan.com/course/2036.html
- Mysql进入数据库
进入某个数据库: use db_name; //db_name为数据库名称 mysql> use db_name Database changed
- IAR调试时出现IAR one or more breakpoints could not be set and have been disabled的解决办法
问题:在IAR调试时,单步执行的时候绿色箭头一直指向汇编界面,不指向C语言界面,并且不能在C语言界面设置断点,以及在代码编辑界面,设置断点,点调试时总提示IAR one or more breakpo ...
- pandas修改列名
- python基础学习笔记——异常处理
异常处理流程图 一,异常和错误 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法 ...
- bzoj3262陌上花开 三维数点 cdq+树状数组
大早上的做了一道三维数点一道五位数点,神清气爽! 先给一维排序,变成一个奇怪的动态的二维数点(相当于有一个扫描面扫过去,导致一系列的加点和询问) 然后cdq分治,再变回静态,考虑前半段对后半段的影响 ...
- __block 和__weak
1,在MRC 时代,__block 修饰,可以避免循环引用:ARC时代,__block 修饰,同样会引起循环引用问题: 2,__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修 ...
- ogre3D学习基础6---场景管理器的使用
场景管理器的使用 最常使用的坐标系统空间(同时也是Ogre程序所能提供的)即是世界空间(World).父节点空间(Parent)以及本地空间(Local). 1.世界空间 就是物体所存在的地方,当我们 ...
- 5款工具助你写出更好的Java代码
1.FindBugs 顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码. 它是一款静态分析工具,它检查类或者JAR ...