1040. Longest Symmetric String (25)
时间限制
400 ms
内存限制
32000 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue
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;
bool Symmetric(string &str,int s,int len)
{
int i,j,k;
for(i=s;i<len/2+s;i++)
{
if(str[i]!=str[s+len-(i-s)-1]) return false;
}
return true;
}
int main()
{
string str;
getline(cin,str);
int maxlen=1;
int i,j,k;
for(i=0;i<str.size();i++)
{
for(j=1;j<=str.size()-i;j++)
{
if(Symmetric(str,i,j)&&j>maxlen) maxlen=j;
}
}
cout<<maxlen<<endl;
return 0;
}