hiho#10362 最长回文子串
来源:互联网 发布:c语言 生成随机数 编辑:程序博客网 时间:2024/06/03 22:59
- /*
描述
小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。
这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符串中找到它们每一个的最长回文子串呢?”
小Ho奇怪的问道:“什么叫做最长回文子串呢?”
小Hi回答道:“一个字符串中连续的一段就是这个字符串的子串,而回文串指的是12421这种从前往后读和从后往前读一模一样的字符串,所以最长回文子串的意思就是这个字符串中最长的身为回文串的子串啦~”
小Ho道:“原来如此!那么我该怎么得到这些字符串呢?我又应该怎么告诉你我所计算出的最长回文子串呢?
小Hi笑着说道:“这个很容易啦,你只需要写一个程序,先从标准输入读取一个整数N(N<=30),代表我给你的字符串的个数,然后接下来的就是我要给你的那N个字符串(字符串长度<=10^6)啦。而你要告诉我你的答案的话,只要将你计算出的最长回文子串的长度按照我给你的顺序依次输出到标准输出就可以了!你看这就是一个例子。”
提示一 提示二 提示三 提示四
3abababaaaaabaaacacdas
753
*/
- #include <iostream>
- #include<stdio.h>
- #include<string.h>
- #include <vector>
- #include <queue>
- #include<algorithm>
- const double PI = acos(-1.0);
- using namespace std;
- char str[1000005];
- int main()
- {
- str[0] = '$';
- int n;
- cin>>n;
- while(n --)
- {
- scanf("%s", str + 1);
- int ans = 0;
- for(int i = 1; str[i]; ++ i)
- {
- int l = i, r = i;
- while(str[r + 1] == str[i])
- ++r;
- i = r;
- while(str[l - 1] == str[r + 1])
- --l, ++r;
- ans = max(ans, r - l + 1);
- }
- cout<<ans<<endl;
- }
- }
1 0
- hiho#10362 最长回文子串
- hiho-最长回文子串
- hiho 第一周 最长回文子串
- 最长回文子串 - hiho一下
- hiho 1 最长回文子串
- hiho 1 最长回文子串
- hiho一下~week_1:最长回文子串
- hiho 1032 最长回文子串
- Hiho 1032 最长回文子串
- 【hiho一下】第一周 最长回文子串
- hiho一下第一周 Hihocoder #1032 : 最长回文子串
- HiHo 1032 最长回文子串 (Manacher算法求解)
- hiho一下第一周:最长回文子串
- hiho一下第一周——最长回文子串
- hiho第一周——最长回文子串
- hiho一下第1周 最长回文子串
- hiho一下第一周#1032 : 最长回文子串
- HiHo #1032 : 最长回文子串 【Manacher算法】
- Android打包过程
- (个人笔记)JAVA6和7的不同编码风格导致的错误
- python中对字典(dict)的迭代
- mysql 全面优化
- linux下devicetree中常用的of函数
- hiho#10362 最长回文子串
- jQuery.validator 验证规则详解
- python os模块 常用命令
- TestNG介绍
- mysql用CATS方式备份数据报This table type requires a primary key错误
- Handlebars学习之——块表达式
- 虚拟机字节码执行引擎
- 【BZOJ 1055】【HAOI 2008】玩具取名 【区间DP】
- WEB前端开发书籍