Проверка: является ли строка палиндромом?

Условие задачи: Дана строка, необходимо написать функцию, которая проверит является ли строка палиндромом или нет. Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.

Например слово ‘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 способа в вашу копилку питониста.

Если вы нашли ошибку в коде, пишите в комментариях.