python中的回文函数未返回预期结果

2024-10-02 16:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试使用for循环定义回文函数,如下所示:

def is_palindrome(input_string):
    new_string = ""
    reverse_string = ""
    for i in input_string.lower(): 
        if input_string.strip():
            new_string = new_string.join(reverse_string)
            reverse_string = reverse_string.join(new_string)
    # Compare the strings
    if new_string == reverse_string:
        return True
    return False
print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True

我一直在努力实现这一切。有人能解释这是为什么吗


Tags: falsetruenewforinputstringreturnif
1条回答
网友
1楼 · 发布于 2024-10-02 16:24:10

您正在input_string上迭代,但没有使用变量i。同样,以您尝试的方式使用str.join也没有意义,似乎您有一个想法,但使用了错误的工具

要检查input_string是否为回文,可以使用:

def is_palindrome(input_string):
    l = input_string.lower().replace(' ', '')
    return l == l[::-1]


print(is_palindrome("Never Odd or Even"))
print(is_palindrome("abc"))
print(is_palindrome("kayak"))

输出:

True
False
True

相关问题 更多 >