Ищем палиндромы: задача с собеседования
Палиндром — это число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях.
Часто на собеседованиях на этапе лайфкодинга просят написать простенький метод для поиска слов - палиндромов.
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
Суть заключается в том, чтобы запустить цикл до половины слова и проверять с конца буквы срезом x[i] != x[-i]