链接:点击这里

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cstring>
using namespace std;
#define maxn 1000005
#define LL long long
#define ull unsigned long long
const LL P = 131;
ull p[maxn+10],f[maxn],ff[maxn];
int main(){p[0]=1;for(int j=1;j<=maxn;j++){p[j]=p[j-1]*P;}string s;int tot=1;while(cin>>s){if(s=="END") break;f[0]=0,ff[0]=0;int ans=0;int len=s.size();for(int j=1;j<=len;j++){f[j]=f[j-1]*P+s[j-1]-'a'+1;}for(int j=len;j>=1;j--){ff[j]=ff[j+1]*P+s[j-1]-'a'+1;}for(int j=1;j<=len;j++){int l=1,r=min(len-j,j),mx=0;while(l<=r){    // 偶数int mid=(l+r)/2;int l1=j-mid+1,r1=j;int l2=j+1,r2=j+mid;LL ll=f[r1]-f[l1-1]*p[r1-l1+1];LL rr=ff[l2]-ff[r2+1]*p[r2-l2+1];if(ll==rr){mx=max(mx,mid);l=mid+1;}else r=mid-1;}ans=max(ans,2*mx);l=1,r=min(len-j,j-1),mx=0;while(l<=r){     //奇数int mid=(l+r)/2;int l1=j-mid,r1=j-1;int l2=j+1,r2=j+mid;LL ll=f[r1]-f[l1-1]*p[r1-l1+1];LL rr=ff[l2]-ff[r2+1]*p[r2-l2+1];if(ll==rr){mx=max(mx,mid);l=mid+1;}else r=mid-1;}ans=max(ans,2*mx+1);}//cout<<ans<<endl;printf("Case %d: %d\n",tot++,ans);}return 0;
}

转载于:https://www.cnblogs.com/DyLoder/p/10200569.html

POJ--3974 Palindrome(回文串,hash)相关推荐

  1. LeetCode Palindrome Partitioning(dfs +回文串 )

    问题:给出一个字符串,输出回文串,使得拼接后为原来的字符串 思路:先通过动态规划得到所有的回文串,然后使用深度优先搜索得到所有的解 具体代码参考: https://github.com/wuli249 ...

  2. PAT甲级1136 A Delayed Palindrome :[C++题解]回文串和高精度并输出过程

    文章目录 题目分析 题目链接 题目分析 此题和PAT甲级1024 Palindromic Number:[C++题解]回文串和高精度加法 一样.区别是多了输出整个计算过程. 下面是主要知识点. 一个判 ...

  3. HDU - 6599 I Love Palindrome String (回文树+Manacher、回文树+hash)

    题目链接 题意 一个长度为3e5的字符串,求长度为iii的字符串满足字符是回文串而且字符串的前一半也是回文串的个数 思路 回文数求出所有的回文字符串,然后用Manacher或者Hash判断是否符合条件 ...

  4. leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)

    题目 https://leetcode.com/problems/shortest-palindrome/ 题解 看了 Related Topics - Rolling Hash 下的相关题目,看到了 ...

  5. 【CodeForces - 798A】Mike and palindrome (回文串,水题,字符串问题)

    题干: Mike has a string s consisting of only lowercase English letters. He wants to change exactly one ...

  6. C#LeetCode刷题之#125-验证回文串(Valid Palindrome)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3899 访问. 给定一个字符串,验证它是否是回文串,只考虑字母和数 ...

  7. C#LeetCode刷题之#409-最长回文串(Longest Palindrome)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3788 访问. 给定一个包含大写字母和小写字母的字符串,找到通过这 ...

  8. 【细节实现 回文串12】LeetCode 564. Find the Closest Palindrome

    LeetCode 564. Find the Closest Palindrome 本博客转载自:http://www.cnblogs.com/grandyang/p/6915355.html Sol ...

  9. 【To Understand!回文串8 哈希表】LeetCode 336. Palindrome Pairs

    LeetCode 336. Palindrome Pairs Solution1:我的答案 最笨的方法,果然因为时间复杂度太高而无法AC-- 难怪是hard 只是记录一下-- class Soluti ...

  10. 【回文串7】LeetCode 234. Palindrome Linked List

    LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...

最新文章

  1. ASP.NET MVC4中调用WEB API的四个方法
  2. 华人博士提出原型对比学习,非监督学习效果远超MoCo和SimCLR
  3. java访问glusterfs_GlusterFS: 访问权限设置
  4. 一种QC-LDPC码对突发噪声抑制的MATLAB仿真
  5. MyBatisPlus_AR篇_入门试炼_06
  6. Gulp新手入门教程
  7. Search in Rotated Sorted Array
  8. 熟练使用Jmeter,这个知识点你一定要看
  9. 编程语言对比 引用数据类型-字典
  10. sharepoint搜索pdf文档
  11. 基于win10系统下用vs2019编译flightgear2020.4.0
  12. VS2015的下载地址和安装教程
  13. Python爬虫 - 01.实现贴吧一键签到
  14. 哈希值(hashCode)
  15. Unity Shader :实现漫反射与高光反射
  16. 2021年中国化学纤维行业发展现状分析,循环再利用或为产品未来发展方向「图」
  17. SQL SERVER 去掉字符串左边的0
  18. Delphi Thread 线程2
  19. bzoj4605 崂山白花蛇草水(动态开点线段树逃替罪羊重构K-D tree)
  20. Java 语音识别(百度语音API)

热门文章

  1. MacOS 的软件包管理工具 HomeBrew 详解
  2. java依赖_java 依赖、组合、聚合与继承
  3. 根据录入的计算公式计算_小规模纳税人增值税计算公式是什么,什么人能被称为小规模纳税人?- 理财技巧...
  4. mysql 存储过程求和_MySQL - 存储过程和函数
  5. python 提升效率_@Python 程序员,如何最大化提升编码效率?
  6. C++ 11 深度学习(六)智能指针综述
  7. java面试题三_最全的java面试题目三
  8. C语言变量的定义包括变量存储类型和变量的什么?
  9. php mysql 实现原理_PHP底层和mysql的通信原理
  10. ubuntu中安装sublime text3用于python编程