Является ли строка палиндромом Python

Является ли строка палиндромом Python Статьи

Введение

В статье рассмотрим несколько вариантов кода, чтобы узнать является ли строка палиндромом с помощью Python.

Итеративный метод

В данном методе будет производиться проверка путём проверки первого элемента строки и последнего, далее второго элемента и предпоследнего и т.д. Если же они совпадали, то строка является палиндромом, если нет, то не является.

def palindrome_check(s):
    # Цикл не закончится, пока не закончится строка делённая напополам
    for i in range(0, int(len(s)/2)):
        # Если элементы не совпали, то строка не является палиндромом
        if s[i] != s[len(s)-i-1]:
            return "Строка не является палиндромом"
    # Если все элементы совпали, то строка является палиндромом
    return "Строка является палиндромом"

# Ввод проверяемой строки
s = input("Введите строку: ")
# Вызов функции с передачей введённой строки в параметр s
print(palindrome_check(s))

Для примера введём слово «шалаш»:

# Ввод: шалаш
# Вывод: Строка является палиндромом

Реверсивный метод

Метод заключается в том, что мы развернём исходную строку, и сравним её с исходной:

def palindrome_check(s):
    # Реверсируем строку
    reverse = ''.join(reversed(s))
    # Проверяем исходную и ревёрснутую строки на равенство
    if s == reverse:
        return "Строка является палиндромом"
    return "Строка не является палиндромом"


s = input("Введите строку: ")

print(palindrome_check(s))

В качестве примера введём строку «коту тащат уток»:

# Ввод: коту тащат уток
# Вывод: Строка является палиндромом

Метод с использованием среза

Как по мне, это самый лучший способ, ведь он занимает всего одну строку. В нём мы проверяем, равна ли строка s инвертированному строковому представлению s. По сути мы инверсируем строку, после чего сравниваем:

s = input("Введите строку: ")

print(str(s) == str(s)[::-1])

В качестве примера введём строку «потоп»:

# Ввод: потоп
# Вывод: True

Если же обязательно нужно, чтоб выводилась определённая надпись, то можно добавить условие:

s = input("Введите строку: ")

if str(s) == str(s)[::-1]:
    print("Строка является палиндромом")
else:
    print("Строка не является палиндромом")

Заключение

В ходе статьи мы с Вами рассмотрели целых три способа проверки, является ли строка палиндромом с помощью Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start