python 中的回文函数未返回预期结果
Palindrome function in python not returning expected results
尝试用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
我一直都是真的。谁能解释这是为什么?
你正在遍历 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
尝试用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
我一直都是真的。谁能解释这是为什么?
你正在遍历 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