题目链接:https://vjudge.net/contest/241341#problem/F

题目大意:给你一个字符串,你可以用任意单个字符代替其中的一个子串,使它形成一个回文串,要求形成的回文串长度最长。

例如:S=‘ABCADDABCA’这个字符串

你可以令a= ‘ABCA’,b= ‘DD’,则S='aba',长度为3;

你可以令a= ‘ABCA’,b='D',则S=‘abba’,长度为4;

你也可以令a= ‘A’,b= ‘BC’,c= ‘D’,则S=’abaccaba',长度为8;

8即使该字符串形成回文串的最长的长度。

解题思路:定义两个空的字符串a,b,一个从长串的头开始往后插入a当中,另一个就是从长串的尾部开始往前插入b当中,只要他们相同计数加2,然后又对它们清空处理,知道中间的位置就行,最后如果字符串不为空,计数还得加1。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string.h>
#include<deque>
using namespace std;
const int inf=0x3f3f3f3f;
char s[]; int main()
{
int t;
cin>>t;
int kase=;
while(t--)
{
kase++;
scanf("%s",s);
int count=;
int len=strlen(s);
string a,b;
a="",b="";
for(int i=;i<=(len-)/;i++)
{
a+=s[i];
b=s[len-i-]+b;
if(a==b&&i!=len-i-)
{
count+=;
a="";
b="";
}
}
if(!a.empty()) count++;
printf("Case #%d: %d\n",kase,count);
}
return ;
}
/*
4
PASTIPAS
ABCADDABCA
MADAMIAMADAM
ACMICPCJAKARTASITE
*/

最新文章

  1. SQLite剖析之设计与概念
  2. C#并行编程之数据并行
  3. [Xamarin] 從Xamarin中呼叫 *.jar 的 library -建立.jar篇 (转帖)
  4. phpcms数据库操作
  5. Chronos
  6. Android Error:Execution failed for task &#39;:app:mergeDebugResources&#39;. &gt; Crunching Cruncher bg_btn.9.png
  7. 快餐问题(dp好题)
  8. leetcode 124. Binary Tree Maximum Path Sum ----- java
  9. ScrollView嵌套recyclerView出现的滑动问题
  10. QtPropertyBrowser+vs2010的安装与配置(转)
  11. C# Json反序列化处理
  12. (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL数据库管理
  13. Python操作 Memcache、Redis、RabbitMQ
  14. python学习:收集ip信息
  15. llinux基本指令
  16. 在SpringBoot中配置aop
  17. Poj3683:Priest John&#39;s Busiest Day
  18. 谈谈javascript 中的函数问题
  19. 经过N条边的最短路
  20. 通过class改变样式

热门文章

  1. [已解决]An unhandled exception occurred while processing the request.
  2. Thrift_简介(基于C#)
  3. &lt;构建之法&gt;10,11,12章的读后感
  4. 项目目前展示图 有几个Activity页还没连上不能一次展示出来
  5. Delphi的idhttp报IOHandler value is not valid错误的原因[转]
  6. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]
  7. [转帖]数据中心网络里的Underlay和Overlay
  8. git 查看远程分支最后一次提交时间
  9. Android控件第4类——ProgressBar
  10. html 统一资源定位器(url)和url编码