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
C++:
//双指针,往两边走,子串分奇偶
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string str;
getline(cin,str);
int res=0;
for(int i=0;i<str.size();i++)
{
int l=i-1,r=i+1;
while(l>=0&&r<str.size()&&str[l]==str[r]) l--,r++;
res=max(res,r-l-1);
l=i,r=i+1;
while(l>=0&&r<str.size()&&str[l]==str[r]) l--,r++;
res=max(res,r-l-1);
}
cout<<res<<endl;
return 0;
}