我的期末考试快到了,老师说他计划在问题列表中加入一个回文检验器。基本上,我需要编写两个单独的函数,一个用于测试列表是否为回文类型(如果是,则返回True),另一个用于测试字符串。
这是我到目前为止所拥有的。它似乎给我带来了麻烦:
def palindrome(s)
index = 0
index = True
while index < len(s)
if n[index]==n[-1-index]
index=1
return True
return False我真的不知道下一步该怎么做。
发布于 2013-05-16 19:51:08
对于列表或字符串:
seq == seq[::-1]发布于 2013-05-16 20:29:46
这就是你的功能,天真的方式。适用于奇数和偶数回文、列表和字符串:
def is_palindrome(s):
return s == s[::-1]另一个问题是,回文是奇数序列还是偶数序列,还是两者都有?我的意思是,abccba和abcba应该都匹配,还是只匹配其中之一?
如果您只想将奇数或偶数序列视为回文,则可以添加测试:
def is_palindrome(s, t='both'):
# only odd sequences can be palindromes
if t=='odd':
if len(s)%2 == 0:
return False
else:
return s == s[::-1]
# only even sequences can be palindromes
elif t=='even':
if len(s)%2:
return False
else:
return s == s[::-1]
# both even or odd sequences can be palindromes
else:
return s == s[::-1]只有一个函数as string是字符列表。如果你的老师真的想要两个函数,你仍然可以使用别名:
def is_list_palindrome(l, t='both'):
return is_palindrome(l, t)https://stackoverflow.com/questions/16586630
复制相似问题