首页 > 解决方案 > python中的回文函数,由老师的逻辑

问题描述

伙计们,我知道有类似的问题,但请帮助处理这段代码 - 我只能找到类似问题的代码,但遵循另一种逻辑,这对于学习我需要学习的内容没有用处。有什么想要的: is_palindrome 函数检查字符串是否为回文。回文是一个字符串,可以从左到右或从右到左同等读取,省略空格,忽略大小写。回文的例子是像 kayak 和radar 这样的词,以及像“Never Odd or Even”这样的短语。如果传递的字符串是回文,则填写此函数中的空白以返回 True,否则返回 False。这就是我想出的……工作但缺少一些东西

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = "{input_split}".format(input_split = input_string.lower())
    reverse_string = "{input_split}".format(input_split = input_string.lower()[::-1])

    # Traverse through each letter of the input string
    for letter in new_string:
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string. 
        if letter[0] in new_string != " ":
            new_string = "{letter}{new_string}".format(letter = letter[0],new_string = new_string[1:]) 
            reverse_string = "{letter}{reverse_string}".format(letter = letter[0],reverse_string = reverse_string[1:])
    # 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

标签: pythonpalindrome

解决方案


使用“split”函数并用空格分割 --> 然后加入所有分割字符串

def is_palindrome(input_string):
    if input_string.lower() == "".join(input_string.split(' ')).lower()[::-1]:
        print("True")
    else:
        print("False")

推荐阅读