October 25

Ищем палиндромы: задача с собеседования 

Палиндром — это число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях.

Например: казак, потоп, дед

Часто на собеседованиях на этапе лайфкодинга просят написать простенький метод для поиска слов - палиндромов.

Вот пример такого метода:

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]