题意:

取一字符串不相交的前缀和后缀(可为空)构成最长回文串。

思路:

先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀。

#include <bits/stdc++.h>
using namespace std;
bool ok(const string &s,int l,int r){
while(l<=r&&s[l]==s[r]) ++l,--r;
return l>r;
}
void solve(){
string s;cin>>s;
int l=0,r=s.size()-1;
while(l<r&&s[l]==s[r]) ++l,--r;
int r2,l2;
for(r2=r;r2>=l;r2--) if(ok(s,l,r2)) break;
for(l2=l;l2<=r;l2++) if(ok(s,l2,r)) break;
cout<<s.substr(0,l)
<<((r2-l>r-l2)?s.substr(l,r2-l+1):s.substr(l2,r-l2+1))
<<s.substr(r+1)
<<"\n";
}
int main()
{
int t;cin>>t;
while(t--)
solve();
return 0;
}

最新文章

  1. JavaScript基础知识总结(二)
  2. 接口测试 postman
  3. filter:alpha(opacity=100,style=1)
  4. ViewFlipper的简单使用实现图片轮播效果
  5. 【python自动化第五篇:python入门进阶】
  6. SCOI2014省选总结
  7. 关于left join连接查询 两张表里有同名字段的问题
  8. Spring、Spring MVC、MyBatis
  9. hibernate ——helloWorld程序(annotation配置)
  10. C字符串处理函数
  11. Centos常用命令之:文件与目录管理
  12. cocos2d-x 欢乐捕鱼游戏总结
  13. Dev GridControl数据修改后实时更新数据源(转)
  14. [ZOJ2069]Greatest Least Common Multiple
  15. Practical Node.js (2018版) 第8章:Building Node.js REST API Servers
  16. android 很多应用中用到的 listView + viewPager
  17. 【转】Graphics 关于呈现质量与合成模式
  18. hdu-1711(kmp算法)
  19. bg,fg,job命令详解
  20. SQL语句字符串处理大全

热门文章

  1. Nginx配置请求头
  2. 【MyBatis】MyBatis 注解开发
  3. Flutter 基础组件:文本、字体样式
  4. java调用js代码
  5. If you see someone without smile
  6. LeetCode590. N叉树的后序遍历
  7. C#使用struct直接转换下位机数据
  8. MySQL全面瓦解18:自定义函数
  9. 5V充12.6V三节锂电池,5V升压12.6V的电路图
  10. 03. struts2中Action配置的各项默认值