广师oj 2238 最长回文子串
来源:互联网 发布:linux 改名字命令 编辑:程序博客网 时间:2024/04/30 04:14
回文串,就是从前往后和从后往前看都是一样的字符串。那么现在给你一个字符串,请你找出该字符串中,长度最大的一个回文子串。
输入描述
有且仅有一个仅包含小写字母的字符串,保证其长度不超过5000
输出描述
有且仅有一个正整数,表示最长回文子串的长度
样本输入
abccbxyz
样本输出
4
将每个字符都当作回文串的中心,一这个字母为中心向两边比较
但要考虑两种情况:aba型,abba型;
#include <stdio.h>#include <string.h> int main(){ int x,y,z,t,num,len; char a[5005]; scanf("%s",a); len = strlen(a)-1; num = 1; for(x=0;x<=len;x++) { if(a[x-1]==a[x+1]) { y = 1; t = 0; while(x+y<=len&&x-y>=0) { if(a[x+y]!=a[x-y]) { break; } t++; y++; } if((t*2+1)>num) num = t*2+1; } if(a[x]==a[x+1]) { y = 1; t = 0; while(x-y>=0&&x+1+y<=len) { if(a[x-y]!=a[x+1+y]) { break; } t++; y++; } if((t+1)*2>num) num = (t+1)*2; } } printf("%d\n",num); return 0;}
将每个字符都作为回文串的第一个字符,并往后找,直到找到以其开头最大的回文串
#include <stdio.h>#include <string.h>int main(){ int x,y,z,t,num,len; int tmp1,tmp2; char a[5005]; scanf("%s",a); len = strlen(a)-1; num = 1; for(x=0;x<=len;x++) { for(y=x+1;y<=len;y++) { for(tmp1=x,tmp2=y;tmp1<=tmp2;tmp1++,tmp2--) { if(a[tmp1]!=a[tmp2]) break; } if(tmp1>=tmp2&&y-x+1>num) { num = y-x+1; } } } printf("%d\n",num); return 0;}
阅读全文
0 0
- 广师oj 2238 最长回文子串
- 广师OJ 2238 回文子串 解题报告
- 南邮 OJ 1100 最长回文子串
- 依然是最长回文子串 9OJ-1528
- 九度OJ 1528 最长回文子串 -- Manacher算法
- LeetCode OJ 之 Longest Palindromic Substring (最长回文子串)
- 九度oj 1528 最长回文子串
- 南邮 OJ 1968 最长回文子串的长度
- LeetCode OJ-5.Longest Palindromic Substring(最长回文子串)
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 详解TCP协议中控制位及URG&PSH的区别
- 架构师之路(十六)
- (转)每个人都应该读一读贝索斯的致股东信 1997-2016
- 对所用对象的通用方法
- jzoj P2153【2017.7.7普及】串
- 广师oj 2238 最长回文子串
- bootstrap路径、分页、标签、徽章
- UnityShader入门精要学习笔记(十一):透明效果-下部分
- 编辑框(CEdit)汇总.
- mysql5.7.18解压版启动mysql服务
- python select网络编程模块详解
- dom4j解析Xml文件工具类
- 分布式文件系统 FastDFS 与nginx 结合
- 递归分治与动态规划--上台阶的问题