Функция палиндрома в python не возвращает ожидаемых результатов - PullRequest
0 голосов
/ 21 марта 2020

Попытка определить функцию палиндрома с помощью для l oop следующим образом:

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

Я продолжаю получать все True. Кто-нибудь может раскрыть, почему это так?

1 Ответ

0 голосов
/ 21 марта 2020

вы перебираете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...