1040 Longest Symmetric String (25)【暴力求解,精悍的代码】
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
网上看了还多都是50行起步的代码,使用了STL精简比较和倒序功能的代码后可缩短到不到30行。(成功AC)
原题:传送门
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int max=-1,cnt=0;
string str;
getline(cin,str);
for(int i=0;i<str.size();++i)
{
for(int j=1;j<=str.size()-i;++j)
{
string temp=str.substr(i,j);
string revs=temp;
reverse(revs.begin(),revs.end());
if(!temp.compare(revs) && j>max)
max=j;
}
}
cout<<max;
system("pause");
return 0;
}