Monday, October 22, 2012

LongestPalindrome


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