1088 最长回文子串
原题链接
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1088
解题思想
/* 采用暴力,划分出每个区间,然后判断,并更新最大值。 显然这种做法,只能应对小数据,大数据的好像是Manacher算法, 现在还不会。 */
代码
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
string str;
int isHui(string s)
{
int len = s.length();
int i = 0;
int j = len-1;
int flag = 1;
while(i<=j)
{
if(s.at(i) == s.at(j))
{
i++;
j--;
}else
{
flag = 0;
break;
}
}
return flag;
}
int main()
{
cin >> str;
int maxx = -1;
string subs;
int len = str.size();
for(int i=0; i<len; ++i)
{
for(int j=1; j<=len-i; ++j)
{
subs = str.substr(i,j);
if(isHui(subs))
{
maxx = max(maxx, j);
}
}
}
cout << maxx <<endl;
return 0;
}