aj wrote:
> linear worst case time.

The best I can do is:

bool is_palin(const char x[], unsigned len)
  {
    if (len < 2)
      return(true);
    for (unsigned i = 0, j = len - 1; i < j; i++, j--)
      if (x[i] != x[j])
        return(false);
    return(true);
  }

unsigned prefix_palin(const char x[], unsigned len)
  {
    unsigned i;

    if (len < 2)
      return(len);

    i = len - 1;

    for ( ; ; )
      {
        while (x[0] != x[i])
          i--;

        if (is_palin(x + 1, i - 1))
          break;

        i--;
      }

    return(i + 1);
  }

But I think the time complexity would be quadratic on
a string such as "aaaaxaaa"


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to