int LongestPalindrome(const char *s, int n)
{
if(NULL==s || n<1)
return -1;
int max=0;
for(int i=0; i<n; i++)
{
for(int j=0; (i-j)>=0&&(i+j)<n;j++)
if(s[i-j]!=s[i+j]) break;
if(j*2+1 > max) max = j*2+1;
for(int j=0; (i-j)>=0&&(i+j+1)<n;j++)//even number
if(s[i-j]!=s[i+j+1]) break;
if(j*2+2 > max) max = j*2+2;
}
return max;
}
No comments:
Post a Comment