1040 Longest Symmetric String

原创 2015年11月21日 10:11:45

Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", hence you must output 11.

Input Specification:

Each input file contains one test case which gives a non-empty string of length no more than 1000.

Output Specification:

For each test case, simply print the maximum length in a line.

Sample Input:
Is PAT&TAP symmetric?
Sample Output:

11

#include<iostream>
#include<string>
using namespace std;
int main(){
	for(string str;getline(cin,str);){
		int max_length = 1;
		for(int i = 0; i < str.length();i++){
			int length1 = 1;
			int length2 = 1;
			//判断长度为偶数的情况
			int index_1 = i;
			int index_2 = i+1;
			if(index_1 < 0 || index_2 >= str.length()){
				continue;
			}
			if(str[index_1] == str[index_2]){
				length1 = 2;
				while(1){
					index_1--;
					index_2++;
					if(index_1 < 0  || index_2 >= str.length()){
						break;
					}
					if(str[index_1] == str[index_2]){
						length1+=2;
					}else{
						break;
					}
				}
			}
			//判断长度为奇数的情况
			index_1 = i-1;
			index_2 = i+1;
			if(index_1 < 0 || index_2 >= str.length()){
				continue;
			}
			if(str[index_1] == str[index_2]){
				length2 = 3;
				while(1){
					index_1--;
					index_2++;
					if(index_1 < 0 || index_2 >= str.length()){
						break;
					}
					if(str[index_1] == str[index_2]){
						length2+= 2;
					}else{
						break;
					}
				}
			}
			if(length1 > max_length){
				max_length = length1;
			}
			if(length2 > max_length){
				max_length = length2;
			}
		}
		cout<<max_length<<endl;
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Leetcode全字符问题

目录 1、编号3 Longest Substring Without Repeating Characters 2、编号6 ZigZag Conversion 3、编号20 Valid Parent...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月07日 08:09
  • 2821

对“视觉机器学习20讲配套仿真代码”的研究心得---流形学习

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %功能:演示流形学习算法在计算机视觉中的应用 %基于流形学习实现目标分类; %环境:Win7,Matl...
  • zouyu409709312
  • zouyu409709312
  • 2016年04月25日 14:17
  • 1272

特殊矩阵——对称矩阵(Symmetric Matrix)

特殊矩阵——对称矩阵(Symmetric Matrix) 注:压缩存储的矩阵可以分为特殊矩阵和稀疏矩阵。对于那些具有相同元素或零元素在矩阵中分布具有一定规律的矩阵,被称之为特殊矩阵。对于那些零元素数...
  • cainv89
  • cainv89
  • 2016年06月26日 14:58
  • 2102

pat1040Longest Symmetric String (25)

题意分析: (1)给出一串字符串,求出其中最长的回文字串的长度 (2)比较简单的做法是从第一个字符开始,依次同时向两边扩散检索,直至扫描整个字符串串结束。但需要注意子字符串长度为奇数和偶数时他们的扫描...
  • LostStephon
  • LostStephon
  • 2015年10月12日 19:12
  • 260

PAT (Advanced Level) Practise 1040 Longest Symmetric String (25)

1040. Longest Symmetric String (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 ...
  • jtjy568805874
  • jtjy568805874
  • 2016年03月11日 15:34
  • 238

1040. Longest Symmetric String (25)

发现以前做过了; 求最长的回文串长度;就是吧所有的可能都求一下,得出最长,这里利用了“/”取模特性,把奇数和偶数的情况一起讨论了 联动以前做的友缘函数模版或者看后面贴的...
  • u014646950
  • u014646950
  • 2015年08月05日 13:54
  • 545

PAT 甲级 1040. Longest Symmetric String

这个是求字符串的最大回文字串,如果按照动态规划的做法,时间复杂度是o(n^2) 这里分享一个时间复杂度为o(n)的做法,因为前不久在leetcode上面看到过,所以做PAT的时候就很快写出来了。 #i...
  • u014089160
  • u014089160
  • 2016年11月19日 21:23
  • 104

1040. Longest Symmetric String

题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1040 暴力 // 暴力破解 // 分类讨论 #include #include #in...
  • Staibin
  • Staibin
  • 2014年03月17日 21:26
  • 518

1040.Longest Symmetric String

【题意】         找出给的字符串中最长对称子串的长度 【思路】         对长度分奇偶数分别进行二分查找,对于每个查找的长度判断是否存在该长度的对称子串,若存在则更新'left'指针...
  • sinat_25278091
  • sinat_25278091
  • 2015年01月16日 12:49
  • 219

LeetCode 3 Longest String

#LeetCode 3 Longest Substring Without Repeating Characters 解题报告 LeetCode 第3题3 Longest Substring W...
  • LouYihang
  • LouYihang
  • 2015年06月07日 23:40
  • 247
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1040 Longest Symmetric String
举报原因:
原因补充:

(最多只允许输入30个字)