Палиндром — это число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях.
Например: казак, потоп, дед
Часто на собеседованиях на этапе лайвкодинга просят написать простенький метод для поиска слов - палиндромов.
Вот пример такого метода:
def palindrome(*, a: str) -> bool:
return a == a[::-1]
Пример использования:
>>> palindrome(a="коза")
>>> False
>>> palindrome(a="дед")
>>> True
В Python, выражение a[::-1]
используется для получения обратной копии списка или строки. Это слайсинг-синтаксис, где:
a
— список или строка, к которой применяется слайсинг.
: —
синтаксис слайсинга (оставляем начало и конец пустыми, что означает, что берется вся строка или список).
-1
— шаг (если шаг отрицательный, то слайсинг идет в обратном порядке).
a[::-1]
создаёт новую строку или список, содержащие те же элементы, что и оригинал, но в обратном порядке.
Есть еще один способ решения задачи:
def palindrome(*, a: str) -> bool:
for i in range(len(a) // 2):
if x[i] != x[-i]:
return False
return True