前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2020HBU天梯赛训练】7-32 最长对称子串

【2020HBU天梯赛训练】7-32 最长对称子串

作者头像
韩旭051
发布2020-06-23 11:56:42
5170
发布2020-06-23 11:56:42
举报
文章被收录于专栏:刷题笔记

7-32 最长对称子串

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。

输入格式:

输入在一行中给出长度不超过1000的非空字符串。

输出格式:

在一行中输出最长对称子串的长度。

输入样例:

代码语言:javascript
复制
Is PAT&TAP symmetric?

输出样例:

代码语言:javascript
复制
11
代码语言:javascript
复制
#include<iostream>
using namespace std;
int main(){
	string s;
	getline(cin,s);
	int max = 0,ta=0,tb=0;
	for(int a=0;a<s.size();a++){
		for(ta=0;a+ta<s.size()&&a-ta>=0&&s[a+ta]==s[a-ta];ta++);
		for(tb=0;a+tb-1<s.size()&&a-tb>=0&&s[a+tb-1]==s[a-tb];tb++);
        tb--;
		if (2*ta-1>max) max = 2*ta-1;
		if (2*tb>max) max = 2*tb;
	}cout<<max;
	return 0;
}

先读取一行然后一层for循环代表对称轴位置 然后向两边扩散 判断 更新最大值即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/01/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入格式:
  • 输出格式:
  • 输入样例:
  • 输出样例:
  • 先读取一行然后一层for循环代表对称轴位置 然后向两边扩散 判断 更新最大值即可。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档