测试失败-python回文检查器
我用doctests创建了一个非常简单的回文检查器 我对最后一次医生检查有意见。它失败并且没有执行ignorecase=True。我弄不明白上次考试为什么不及格 代码:测试失败-python回文检查器,python,python-2.7,doctest,Python,Python 2.7,Doctest,我用doctests创建了一个非常简单的回文检查器 我对最后一次医生检查有意见。它失败并且没有执行ignorecase=True。我弄不明白上次考试为什么不及格 代码: 注意,我讨厌你的可变选择。onlyletters是onlyletters的反面,是的,显然。。。无论如何 你不使用ignorecase,那它怎么能工作呢 下面是一个可能的解决方案: if ignorecase: return onlyLetters.lower() == onlyletters.lower() else:
注意,我讨厌你的可变选择。onlyletters是onlyletters的反面,是的,显然。。。无论如何 你不使用ignorecase,那它怎么能工作呢 下面是一个可能的解决方案:
if ignorecase:
return onlyLetters.lower() == onlyletters.lower()
else:
return onlyLetters == onlyletters
def is_palindrome(s):
if s == '':
return True
else:
if s[0] == s[-1]:
return is_palindrome(s[1:-1])
else:
return False
我的解决方案是,在降低案例后,将任何非字母替换为零
import re
def isPalindrome(s, ignoreCase):
if ignoreCase:
s = s.lower()
onlyLetters = re.sub("[^a-z]+", "", s)
return(onlyLetters == onlyLetters[::-1])
我的第二个解决方案:
if ignorecase:
return onlyLetters.lower() == onlyletters.lower()
else:
return onlyLetters == onlyletters
def is_palindrome(s):
if s == '':
return True
else:
if s[0] == s[-1]:
return is_palindrome(s[1:-1])
else:
return False
输出:
print is_palindrome('')
#>>> True
print is_palindrome('abab')
#>>> False
print is_palindrome('abba')
#>>> True