2024-04-26 06:05:23 发布
网友
我应该用代码检查一个单词或句子是否是回文,我可以检查单词,但是我在检查句子是否是回文时遇到了麻烦。这是我的代码,它很短,但我不确定如何添加它来检查句子回文。我是python的初学者,我已经看过其他人的代码了,它们太复杂了,我不太明白。我写的是:
def is_palindrome(s): if s[::1] == s[::-1]: return True else: return False
这是一个句子回文的例子:“红玫瑰没有风险,先生,护士命令。”(如果你忽略空格和特殊字符)
为了检查句子回文,算法似乎是:
new_s
您可以通过执行以下操作来实现前者:
import string valid = set(string.ascii_letters) result_s = ''.join([ch for ch in original_s if ch in valid])
然后通过以下方式:
把整个事情和:
import string s = "Red roses run no risk, sir, on nurses order" s2 = "abcba" s_fail = "blah" def is_palindrome(s): valid = set(string.ascii_letters) result_s = ''.join([ch for ch in s if ch in valid]) cf_s = result_s.casefold() return cf_s == cf_s[::-1] assert(is_palindrome(s)) assert(is_palindrome(s2)) assert(is_palindrome(s_fail)) # throws AssertionError
import string def is_palindrome(s): whitelist = set(string.ascii_lowercase) s = s.lower() s = ''.join([char for char in s if char in whitelist]) return s == s[::-1]
您可以过滤字符串以仅获得如下字母:
letters = ''.join(c for c in words if c in string.letters) is_palindrome(letters)
您还必须调用lower:
lower
为了检查句子回文,算法似乎是:
new_s
和{您可以通过执行以下操作来实现前者:
然后通过以下方式:
^{pr2}$把整个事情和:
您可以过滤字符串以仅获得如下字母:
您还必须调用
^{pr2}$lower
:相关问题 更多 >
编程相关推荐