检查字符串是否是palindrome忽略空格和特殊字符

时间:2014-09-17 03:53:45

标签: python palindrome

所以,基本上我想检查字符串是否是回文

我知道我可以简单地使用

def palindrome(n):
    return n == n[::-1]

它工作正常,但如果我想要一个字符串,例如“一只猫,一只螃蟹,哈哈:barcenotaca”。 如果是真的,我该怎么办?

4 个答案:

答案 0 :(得分:3)

def palindrome(n):
    n = n.lower()
    n = ''.join(char for char in n if char.isalpha())
    return n==n[::-1]

检查char.isalpha()可以忽略所有不是字母的内容(当与n = n.lower()结合使用时,它基本上只检查小写字母)这样,你忽略了所有的标点符号和空白

答案 1 :(得分:2)

def palindrome(n):
    x = ''.join([x.lower() for x in n if x.isalpha()])
    return x == x[::-1]

答案 2 :(得分:0)

尝试检查给定字符串中的每个字母是否首先出现在字母表中,如下所示

import string
def palindrome(str):
    alphabet=string.ascii_lowercase
    temp=""
    for c in str.lower():
        if c in alphabet:
            temp+=c
    return temp==temp[::-1]

答案 3 :(得分:0)

def palindrome():
    stringOne = alphaCheck("give me a lovely palindrome")
    stringTwo = stringOne[::-1]
    for i in stringOne:
        print(i)
    for j in stringTwo:
        print(j)
    if stringOne == stringTwo:
        return True
    else:
        return False

def alphaCheck(prompt):
    stringOne = input(prompt)
    stringOne = stringOne.replace(" ", "")
    stringOne = stringOne.lower()
    while not stringOne.isalpha():
        stringOne = input(prompt)
    return stringOne

print(palindrome())

此方法允许您输入自己的回文并检查以确保它只包含字母字符。如果你想改变它只是数字改变而不是stringOne.isalpha()到