palindrome iteration
Ian
hobson42 at gmaiil.com
Fri Aug 27 12:37:36 EDT 2010
On 27/08/2010 09:53, Baba wrote:
> level: beginner
>
> the following code looks ok to me but it doesn't work. I would like
> some hints as to where my reasoning / thought goes wrong
>
> def i_palindrome(pal):
> while len(pal)>1:
> if pal[0] == pal[-1]:
> pal=pal[1:-1]
> return True
>
> print i_palindrome('annab')
>
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
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
More information about the Python-list
mailing list