разница между обратной строкой и прямой строкой - PullRequest
1 голос
/ 24 марта 2020

Функция is_palindrome проверяет, является ли строка палиндромом.

Палиндром - это строка, которая может быть одинаково прочитана слева направо или справа налево, пропуская пробелы и игнорируя заглавные буквы.

Примерами палиндромов являются такие слова, как каяк и радар, и фразы типа «Никогда нечетный или четный». Заполните пробелы в этой функции, чтобы вернуть True, если переданная строка является палиндромом, и False, если нет.

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = ""
    reverse_string = ""
    input_string =input_string.lower()
    # Traverse through each letter of the input string
    for x in input_string:
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string.

        if x!=" ":
            new_string =new_string+ x
            reverse_string = x+reverse_string
    # Compare the strings
    if new_string==reverse_string:
        return True
    return False

Какая разница между new_string+x и x+reverse_string не приведет к получению тот же эффект?

Ответы [ 3 ]

2 голосов
/ 11 апреля 2020

Я новичок в Python. Я постараюсь ответить.

При циклическом прохождении строки new_string =new_string+ x будет выдавать результат, подобный приведенному ниже, для слова python:

1-я итерация: p

2-я итерация : py

3-я итерация: pyt

Тем временем reverse_string = x+reverse_string выдаст результаты, подобные

1-я итерация: p

2-я итерация: yp

3-я итерация: тип

В этом разница между этими утверждениями. Когда вы проверите его через слово палиндром, вы не найдете никакой разницы. Выберите непалиндромное слово, чтобы увидеть разницу.

1 голос
/ 12 апреля 2020

Посмотрите на несколько примеров выходных данных, это может помочь вам.

    new_string:- n ,  n -reverse_string
    new_string:- ne , en -reverse_string
    new_string:- nev ,ven -reverse_string
    new_string:- neve ,even -reverse_string
    new_string:- never ,reven -reverse_string
    new_string:- nevero ,oreven -reverse_string
    new_string:- neverod ,doreven -reverse_string
    new_string:- neverodd ,ddoreven -reverse_string
    new_string:- neveroddo ,oddoreven -reverse_string
    new_string:- neveroddor ,roddoreven -reverse_string
    new_string:- neveroddore ,eroddoreven -reverse_string
    new_string:- neveroddorev ,veroddoreven -reverse_string
    new_string:- neveroddoreve ,everoddoreven -reverse_string
    new_string:- neveroddoreven ,neveroddoreven -reverse_string

    True
    new_string:- a ,  a -reverse_string
    new_string:- ab , ba -reverse_string
    new_string:- abc ,cba -reverse_string

    False
    new_string:- k ,  k -reverse_string
    new_string:- ka , ak -reverse_string
    new_string:- kay ,yak -reverse_string
    new_string:- kaya ,ayak -reverse_string
    new_string:- kayak ,kayak -reverse_string

    True
0 голосов
/ 02 мая 2020

Убедитесь, что все они прописные или строчные буквы:

def is_palindrome(input_string):
   new_string = ""
   reverse_string = ""
    for letter in input_string:
    if letter != " ":
        new_string += letter 
        reverse_string = letter + reverse_string
   if new_string.lower() == reverse_string.lower():
    return True
return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...