Условие задачи: Дана строка, необходимо написать функцию, которая проверит является ли строка палиндромом или нет. Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.
Например слово ‘radar’ ‘радар’.
Метод 1:
Найдем обратную строку с помощью метода reverse, затем сравним обратную строку с исходной
# возвращает обратную строку
def reverse(s):
return s[::-1]
def is_palindrome(s):
rev = reverse(s)
# проверка на совпадение 2х строк
if (s == rev):
return True
return False
# запуск кода
s = "malayalam"
ans = is_palindrome(s)
>>>True
Метод 2: Итеративный метод. Начать цикл с length/2 и проверять первый и последний элемент, второй и предпоследний и т.д. Если хоть что-то не совпадает, следовательно это не полиндром.
def isPalindrome(str):
# Run loop from 0 to len/2
for i in xrange(0, len(str)/2):
if str[i] != str[len(str)-i-1]:
return False
return True
s = "malayalam"
ans = isPalindrome(s)
>>> True
Метод 3: Использование встроеной функции для реверса строки.
Просто посмотрите код.
def isPalindrome(s):
# Используем встроенную функцию
rev = ''.join(reversed(s))
# Проверяем строки на равенство
if (s == rev):
return True
return False
s = "malayalam"
ans = isPalindrome(s)
True
3 способа в вашу копилку питониста.
Если вы нашли ошибку в коде, пишите в комментариях.

