Python 测试列表或字符串是否为回文
我有一个期末考试,老师说他计划在问题列表中加入一个回文检查器。基本上,我需要编写两个单独的函数,一个用于测试列表是否为回文(如果是,则返回True),另一个用于测试字符串 这是我到目前为止所拥有的。这似乎给我带来了麻烦:Python 测试列表或字符串是否为回文,python,algorithm,Python,Algorithm,我有一个期末考试,老师说他计划在问题列表中加入一个回文检查器。基本上,我需要编写两个单独的函数,一个用于测试列表是否为回文(如果是,则返回True),另一个用于测试字符串 这是我到目前为止所拥有的。这似乎给我带来了麻烦: def palindrome(s) index = 0 index = True while index < len(s) if n[index]==n[-1-index] index=1 retu
def palindrome(s)
index = 0
index = True
while index < len(s)
if n[index]==n[-1-index]
index=1
return True
return False
def回文
索引=0
索引=真
而指数
我真的不确定从那里走到哪里。对于列表或字符串:
seq == seq[::-1]
这是你的功能,天真的方式。适用于奇数和偶数回文、列表和字符串:
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]
只有一个函数,因为字符串是字符列表。如果您的老师真的想要两个功能,您仍然可以使用别名:
def is_list_palindrome(l, t='both'):
return is_palindrome(l, t)
“LevEl”是回文吗?字符串是字符列表,所以我想你只有一个函数可以写。我想是吧!但他很清楚,他想要两种不同的功能。嗯。@posthumana这可能是个骗局,如果不是的话,我想看看他会有什么不同with@jamylak
def is_string_palindrome(text):return is_list_palindrome(list(text))
-there ya go-sorted;)