Palindrome
Ron Adam
radam2 at tampabay.rr.com
Fri Nov 14 13:02:22 EST 2003
On Fri, 14 Nov 2003 14:34:23 +0000, Alan Kennedy <alanmk at hotmail.com>
wrote:
>
>If I were going to follow this approach, I would try to eliminate any
>copying, like so:
>
>def palindrome_test(p):
> p = p.lower()
> p = re.sub(r'\W','',p)
> plen = len(p)
> for i in xrange(plen/2):
> if p[i] != p[plen-i-1]:
> return False
> return True
>
>regards,
Good point. Ok, how about like this?
"""
Test if a string is a palindrome.
"""
import re
def palindrome_test(p):
p = re.sub(r'\W','',p.lower())
i = len(p)//2
while i and p[i] == p[-i-1]: i -= 1
return not i
palindrome_list = [
"A",
"ab",
"Oo!",
"Bolton",
"This is not a palindrome!",
"Was it a car or a cat I saw?",
"No 'H' type, mate, no spot stops one tame python!",
"A man, a plan, a cat, a ham, a yak, a yam, a hat, a
canal--Panama!",
]
for p in palindrome_list:
print '"'+p+'"',
if palindrome_test(p):
print 'is a palindrome.'
else:
print 'is not a palindrome.'
More information about the Python-list
mailing list