Jussi Piitulainen wrote:
Ian writes:

If you want to or must  do it recursively.
(Shown in pseudo code to make the logic clearer)

def isPalindrome(pal)
     ''' test pal (a list) is a palindrome '''
     if length of pal = 1
         return True # all one letter strings are palindromes.
     if first equals last
         # pal could be a palindrome
         #  so test inner part
         p = pal with first and last removed
         return  isPalendrome(p)   #  and true - implied
     else
         return False # it can't be

def palindromep(s): return ( s == "" or
             ( s[0] == s[-1] and
               palindromep(s[1:-1]) ) )

Of course, the simpler way is to use the definition of a Palindrome
as the same backwards and forwards.

def isPalindrome(pal)
     return pal == pal.reverse

Agreed. But is there any nicer way to spell .reverse than [::-1] in
Python? There is .swapcase() but no .reverse(), right?

There can't be a .reverse() method on string, because it's immutable. You could use

   "".join(reversed(pal))

but I'd prefer  pal[::-1]  as I said earlier.

DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to